add subsections for objects and references

group description of data instead of spreading it across the section.

that should help direct skimming. as it turns out, people do not
actually read any of that.
This commit is contained in:
Valentin Gagarin 2022-05-26 05:16:33 +02:00
parent 4341849193
commit 843288a451

View file

@ -2,6 +2,8 @@
A Nix store is a collection of *store objects*.
## Store Object
A store object can hold
- arbitrary *data*
@ -9,6 +11,16 @@ A store object can hold
Nix makes no distinction if store objects are build inputs, build results, or build tasks.
Store objects are [immutable][immutable-object]: once created, they do not change until they are deleted.
## Reference
References to store objects are [opaque][opaque-data-type], [unique identifiers][unique-identifier]:
The only way to obtain references is by adding or building store objects.
A reference will always point to exactly one store object.
## Operations
A Nix store can *add*, *retrieve*, and *delete* store objects.
[ data ]
@ -46,11 +58,7 @@ As it keeps track of references, it can [garbage-collect][garbage-collection] un
[ store ] --> collect garbage --> [ store' ]
Store objects are [immutable][immutable-object]: once created, they do not change until they are deleted.
References are [opaque][opaque-data-type], [unique identifiers][unique-identifier]:
The only way to obtain references is by adding or building store objects.
A reference will always point to exactly one store object.
## Closure
Nix stores have the *closure property*: for each store object in the store, all the store objects it references must also be in the store.