mirror of
https://github.com/NixOS/nix
synced 2025-06-26 15:51:15 +02:00
* "Nix expression" -> "store expression".
* More refactoring.
This commit is contained in:
parent
9f0f020929
commit
ce92d1bf14
20 changed files with 121 additions and 119 deletions
56
src/libstore/storeexpr.hh
Normal file
56
src/libstore/storeexpr.hh
Normal file
|
@ -0,0 +1,56 @@
|
|||
#ifndef __STOREEXPR_H
|
||||
#define __STOREEXPR_H
|
||||
|
||||
#include "aterm.hh"
|
||||
#include "store.hh"
|
||||
|
||||
|
||||
/* Abstract syntax of store expressions. */
|
||||
|
||||
struct ClosureElem
|
||||
{
|
||||
PathSet refs;
|
||||
};
|
||||
|
||||
typedef map<Path, ClosureElem> ClosureElems;
|
||||
|
||||
struct Closure
|
||||
{
|
||||
PathSet roots;
|
||||
ClosureElems elems;
|
||||
};
|
||||
|
||||
typedef map<string, string> StringPairs;
|
||||
|
||||
struct Derivation
|
||||
{
|
||||
PathSet outputs;
|
||||
PathSet inputs; /* Store expressions, not actual inputs */
|
||||
string platform;
|
||||
Path builder;
|
||||
Strings args;
|
||||
StringPairs env;
|
||||
};
|
||||
|
||||
struct StoreExpr
|
||||
{
|
||||
enum { neClosure, neDerivation } type;
|
||||
Closure closure;
|
||||
Derivation derivation;
|
||||
};
|
||||
|
||||
|
||||
/* Hash an aterm. */
|
||||
Hash hashTerm(ATerm t);
|
||||
|
||||
/* Write an aterm to the Nix store directory, and return its path. */
|
||||
Path writeTerm(ATerm t, const string & suffix);
|
||||
|
||||
/* Parse a store expression. */
|
||||
StoreExpr parseStoreExpr(ATerm t);
|
||||
|
||||
/* Parse a store expression. */
|
||||
ATerm unparseStoreExpr(const StoreExpr & ne);
|
||||
|
||||
|
||||
#endif /* !__STOREEXPR_H */
|
Loading…
Add table
Add a link
Reference in a new issue