|
Nix 2.93.3
Lix: A modern, delicious implementation of the Nix package manager; unstable internal interfaces
|
#include <derived-path.hh>
Public Types | |
| using | Raw = derived_path::detail::SingleDerivedPathRaw |
| using | Opaque = DerivedPathOpaque |
| using | Built = SingleDerivedPathBuilt |
Public Member Functions | |
| const Raw & | raw () const |
| const StorePath & | getBaseStorePath () const |
| std::string | to_string (const Store &store) const |
| std::string | to_string_legacy (const Store &store) const |
| kj::Promise< Result< JSON > > | toJSON (Store &store) const |
Static Public Member Functions | |
| static SingleDerivedPath | parse (const Store &store, std::string_view, const ExperimentalFeatureSettings &xpSettings=experimentalFeatureSettings) |
| static SingleDerivedPath | parseLegacy (const Store &store, std::string_view, const ExperimentalFeatureSettings &xpSettings=experimentalFeatureSettings) |
A "derived path" is a very simple sort of expression (not a Nix language expression! But an expression in a the general sense) that evaluates to (concrete) store path. It is either:
| const StorePath & nix::SingleDerivedPath::getBaseStorePath | ( | ) | const |
Get the store path this is ultimately derived from (by realising and projecting outputs).
Note that this is not a property of the store object being referred to, but just of this path — how we happened to be referring to that store object. In other words, this means this function breaks "referential transparency". It should therefore be used only with great care.
|
static |
Uses ^ as the separator
| xpSettings | Stop-gap to avoid globals during unit tests. |
|
static |
Uses ! as the separator
| xpSettings | Stop-gap to avoid globals during unit tests. |
| std::string nix::SingleDerivedPath::to_string | ( | const Store & | store | ) | const |
Uses ^ as the separator
| std::string nix::SingleDerivedPath::to_string_legacy | ( | const Store & | store | ) | const |
Uses ! as the separator