10#include "source-accessor.hh"
27 : accessor(std::move(accessor))
28 , path(std::move(path))
31 std::string_view baseName()
const;
47 std::function<
void(uint64_t)> sizeCallback = [](uint64_t size){})
const
48 {
return accessor->readFile(path, sink, sizeCallback); }
66 std::optional<SourceAccessor::Stat>
maybeLstat()
const;
85 PathFilter & filter = defaultPathFilter)
const;
93 std::string to_string()
const;
105 SourcePath
operator / (std::string_view c)
const;
107 bool operator==(
const SourcePath &
x)
const noexcept;
108 std::strong_ordering operator<=>(
const SourcePath &
x)
const noexcept;
114 SymlinkResolution mode = SymlinkResolution::Full)
const
116 return {accessor, accessor->resolveSymlinks(path, mode)};
122std::ostream & operator << (std::ostream & str, const SourcePath & path);
127struct std::hash<nix::SourcePath>
129 std::size_t operator()(const nix::SourcePath & s) const noexcept
131 std::size_t hash = 0;
132 hash_combine(hash, s.accessor->number, s.path);
Definition canon-path.hh:41
std::function< bool(const Path &path)> PathFilter
Definition file-system.hh:365
T x
Definition lexer.l:2648
Definition serialise.hh:20
Definition source-accessor.hh:96
Definition source-path.hh:22
std::optional< std::filesystem::path > getPhysicalPath() const
Definition source-path.cc:38
SourceAccessor::Stat lstat() const
Definition source-path.cc:21
bool pathExists() const
Definition source-path.cc:18
void dumpPath(Sink &sink, PathFilter &filter=defaultPathFilter) const
Definition source-path.cc:33
std::string readFile() const
Definition source-path.cc:15
std::string readLink() const
Definition source-path.cc:30
SourceAccessor::DirEntries readDirectory() const
Definition source-path.cc:27
std::optional< SourceAccessor::Stat > maybeLstat() const
Definition source-path.cc:24
SourcePath resolveSymlinks(SymlinkResolution mode=SymlinkResolution::Full) const
Definition source-path.hh:113
SourcePath operator/(const CanonPath &x) const
Definition source-path.cc:44
SourcePath parent() const
Definition source-path.cc:8