29 : path(std::move(path))
32 std::string_view baseName()
const;
40 const CanonPath & canonical()
const {
return path; }
42 std::string to_string()
const
43 {
return path.abs(); }
54 {
return {path + x}; }
62 {
return {path + c}; }
66 return path == x.path;
69 bool operator != (
const SourcePath & x)
const
71 return path != x.path;
74 bool operator < (
const SourcePath & x)
const
80std::ostream & operator << (std::ostream & str,
const SourcePath & path);
88class CheckedSourcePath :
public SourcePath
90 friend struct SourcePath;
92 CheckedSourcePath(
CanonPath path): SourcePath(std::move(path)) {}
100 {
return nix::readFile(path.abs()); }
107 {
return nix::pathExists(path.abs()); }
119 std::optional<InputAccessor::Stat>
maybeLstat()
const;
131 std::optional<InputAccessor::Stat>
maybeStat()
const;
144 {
return nix::readLink(path.abs()); }
151 PathFilter & filter = defaultPathFilter)
const
152 { sink << nix::dumpPath(path.abs(), filter); }
Definition canon-path.hh:28
Definition source-path.hh:89
std::optional< InputAccessor::Stat > maybeStat() const
Definition source-path.cc:56
void dumpPath(Sink &sink, PathFilter &filter=defaultPathFilter) const
Definition source-path.hh:149
bool pathExists() const
Definition source-path.hh:106
InputAccessor::Stat lstat() const
Definition source-path.cc:37
InputAccessor::Stat stat() const
Definition source-path.cc:51
std::string readLink() const
Definition source-path.hh:143
InputAccessor::DirEntries readDirectory() const
Definition source-path.cc:65
std::string readFile() const
Definition source-path.hh:99
std::optional< InputAccessor::Stat > maybeLstat() const
Definition source-path.cc:42
std::function< bool(const Path &path)> PathFilter
Definition file-system.hh:318
Definition serialise.hh:18
Definition source-path.hh:23
SourcePath operator+(const CanonPath &x) const
Definition source-path.hh:53
CheckedSourcePath unsafeIntoChecked()
Definition source-path.hh:155
SourcePath parent() const
Definition source-path.cc:18