Public Member Functions | |
std::string | unparse (const StoreDirConfig &store, bool maskOutputs, DerivedPathMap< StringSet >::ChildNode::Map *actualInputs=nullptr) const |
std::optional< BasicDerivation > | tryResolve (Store &store, Store *evalStore=nullptr) const |
std::optional< BasicDerivation > | tryResolve (Store &store, const std::map< std::pair< StorePath, std::string >, StorePath > &inputDrvOutputs) const |
void | checkInvariants (Store &store, const StorePath &drvPath) const |
Derivation (const BasicDerivation &bd) | |
Derivation (BasicDerivation &&bd) | |
nlohmann::json | toJSON (const StoreDirConfig &store) const |
bool | operator== (const Derivation &) const =default |
![]() | |
BasicDerivation (BasicDerivation &&)=default | |
BasicDerivation (const BasicDerivation &)=default | |
BasicDerivation & | operator= (BasicDerivation &&)=default |
BasicDerivation & | operator= (const BasicDerivation &)=default |
bool | isBuiltin () const |
DerivationType | type () const |
StringSet | outputNames () const |
DerivationOutputsAndOptPaths | outputsAndOptPaths (const StoreDirConfig &store) const |
void | applyRewrites (const StringMap &rewrites) |
bool | operator== (const BasicDerivation &) const =default |
Static Public Member Functions | |
static Derivation | fromJSON (const StoreDirConfig &store, const nlohmann::json &json, const ExperimentalFeatureSettings &xpSettings=experimentalFeatureSettings) |
![]() | |
static std::string_view | nameFromPath (const StorePath &storePath) |
Public Attributes | |
DerivedPathMap< std::set< OutputName > > | inputDrvs |
![]() | |
DerivationOutputs | outputs |
StorePathSet | inputSrcs |
std::string | platform |
Path | builder |
Strings | args |
StringPairs | env |
std::string | name |
Check that the derivation is valid and does not present any illegal states.
This is mainly a matter of checking the outputs, where our C++ representation supports all sorts of combinations we do not yet allow.
std::optional< BasicDerivation > nix::Derivation::tryResolve | ( | Store & | store, |
const std::map< std::pair< StorePath, std::string >, StorePath > & | inputDrvOutputs ) const |
Like the above, but instead of querying the Nix database for realisations, uses a given mapping from input derivation paths + output names to actual output store paths.
std::optional< BasicDerivation > nix::Derivation::tryResolve | ( | Store & | store, |
Store * | evalStore = nullptr ) const |
Return the underlying basic derivation but with these changes:
std::string nix::Derivation::unparse | ( | const StoreDirConfig & | store, |
bool | maskOutputs, | ||
DerivedPathMap< StringSet >::ChildNode::Map * | actualInputs = nullptr ) const |
Print a derivation.
DerivedPathMap<std::set<OutputName> > nix::Derivation::inputDrvs |
inputs that are sub-derivations