pub enum GcPhaseKind {
LockStore,
CollectGcRoots,
ComputeLiveSet,
ScanStore,
ComputeDeadSet,
FilterByAgeAndSize,
DeleteDeadPaths,
UnlockStore,
EmitReport,
AttestRunToChain,
}Expand description
Closed set of GC phases.
Variants§
LockStore
Acquire the global store lock to prevent concurrent builds from racing with the dead-set computation.
CollectGcRoots
Collect every GC root: profile generation links, gcroots
directory, indirect roots, builder roots, --keep paths.
ComputeLiveSet
Compute the live set as the transitive closure of references reachable from the GC roots.
ScanStore
Enumerate every path in /nix/store.
ComputeDeadSet
Subtract live set from all paths to derive the dead set.
FilterByAgeAndSize
Apply policy filters: --delete-older-than, --max-freed,
--keep-going. Some dead paths may survive a single GC if
the operator’s policy caps the deletion rate.
DeleteDeadPaths
Delete dead paths from /nix/store. Recursively chmod -R u+w
store entries that have read-only bits set, then unlink.
UnlockStore
Release the store lock.
EmitReport
Emit a typed GcReport (paths deleted, bytes freed, runtime)
for operator surfacing.
AttestRunToChain
Optional: attest the GC run to the OutcomeChain so audit trails carry the deletion event. Skipped on hosts without the attestation layer.
Trait Implementations§
Source§impl Clone for GcPhaseKind
impl Clone for GcPhaseKind
Source§fn clone(&self) -> GcPhaseKind
fn clone(&self) -> GcPhaseKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for GcPhaseKind
Source§impl Debug for GcPhaseKind
impl Debug for GcPhaseKind
Source§impl<'de> Deserialize<'de> for GcPhaseKind
impl<'de> Deserialize<'de> for GcPhaseKind
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for GcPhaseKind
Source§impl Hash for GcPhaseKind
impl Hash for GcPhaseKind
Source§impl PartialEq for GcPhaseKind
impl PartialEq for GcPhaseKind
Source§fn eq(&self, other: &GcPhaseKind) -> bool
fn eq(&self, other: &GcPhaseKind) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for GcPhaseKind
impl Serialize for GcPhaseKind
impl StructuralPartialEq for GcPhaseKind
Auto Trait Implementations§
impl Freeze for GcPhaseKind
impl RefUnwindSafe for GcPhaseKind
impl Send for GcPhaseKind
impl Sync for GcPhaseKind
impl Unpin for GcPhaseKind
impl UnsafeUnpin for GcPhaseKind
impl UnwindSafe for GcPhaseKind
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.