+// {0,0} means unknown or so current that it should never match.
+// {-1,0} means it's not a directory.
+struct dir_time {
+ int64_t sec;
+ int32_t nsec;
+
+ bool operator<(const dir_time &other) const
+ {
+ if (sec != other.sec)
+ return sec < other.sec;
+ return nsec < other.nsec;
+ }
+ bool operator>=(const dir_time &other) const
+ {
+ return !(other < *this);
+ }
+};
+constexpr dir_time unknown_dir_time{ 0, 0 };
+constexpr dir_time not_a_dir{ -1, 0 };
+