18 bool operator == (
const File &)
const noexcept;
19 std::strong_ordering operator <=> (
const File &)
const noexcept;
22 bool executable =
false;
25 bool operator == (
const Regular &)
const =
default;
26 auto operator <=> (
const Regular &)
const =
default;
30 using Name = std::string;
32 std::map<Name, File, std::less<>> contents;
34 bool operator == (
const Directory &)
const noexcept;
36 bool operator < (
const Directory &)
const noexcept;
42 bool operator == (
const Symlink &)
const =
default;
43 auto operator <=> (
const Symlink &)
const =
default;
46 using Raw = std::variant<Regular, Directory, Symlink>;
49 MAKE_WRAPPER_CONSTRUCTOR(
File);
56 bool operator == (
const MemorySourceAccessor &)
const noexcept =
default;
57 bool operator < (
const MemorySourceAccessor & other)
const noexcept {
58 return root < other.root;
80 SourcePath addFile(
CanonPath path, std::string && contents);
84inline bool MemorySourceAccessor::File::Directory::operator == (
86inline bool MemorySourceAccessor::File::Directory::operator < (
89 return contents < other.contents;
92inline bool MemorySourceAccessor::File::operator == (
94inline std::strong_ordering MemorySourceAccessor::File::operator <=> (
106 void createDirectory(
const CanonPath & path)
override;
112 void createSymlink(
const CanonPath & path,
const std::string & target)
override;
Definition canon-path.hh:41
std::optional< SourceAccessor::Stat > maybeLstat() const
CanonPath(std::string_view raw)
std::string readFile() const
std::string readLink() const
SourceAccessor::DirEntries readDirectory() const
void createRegularFile(const CanonPath &path, std::function< void(CreateRegularFileSink &)>) override
Definition memory-source-accessor.cc:149
Definition memory-source-accessor.hh:29
Definition memory-source-accessor.hh:21
Definition memory-source-accessor.hh:39
Definition memory-source-accessor.hh:17
Definition memory-source-accessor.hh:11
File * open(const CanonPath &path, std::optional< File > create)
Definition memory-source-accessor.cc:6
Definition source-accessor.hh:96