pub enum GcArm {
NewGeneration,
CompactInPlace,
}Expand description
Which Gc GitOps::gc runs as its third
step, after reachability and after the dead index rows are dropped.
Variants§
NewGeneration
NewGeneration — the default. Hard-link, compact the link, verify
the result by reading every entry back, rename to x.gN.znippy,
unlink the old generation last. A death at any point leaves at least one
complete readable archive.
CompactInPlace
CompactInPlace — base znippy’s compact_archive against the archive
under its own name: stage beside it, rename over it. Verification is
post-hoc: by the time there is something to read back, the original
is already gone. One archive on disk instead of two, and no generation
suffix — which is the reason to pick it — at the price of that window.
Implementations§
Source§impl GcArm
impl GcArm
pub const ALL: [GcArm; 2]
pub fn as_str(self) -> &'static str
Sourcepub fn strategy(self) -> &'static str
pub fn strategy(self) -> &'static str
The name the built implementation reports through Gc::name, which is
also what lands in GcReport::strategy
— the applied output a guard reads.
Sourcepub fn create(self) -> Box<dyn Gc + Send + Sync>
pub fn create(self) -> Box<dyn Gc + Send + Sync>
Build it. Send + Sync because a GitStore is shared across the
indexer’s threads.
pub fn parse(s: &str) -> Result<Self>
Trait Implementations§
impl Copy for GcArm
impl Eq for GcArm
impl StructuralPartialEq for GcArm
Auto Trait Implementations§
impl Freeze for GcArm
impl RefUnwindSafe for GcArm
impl Send for GcArm
impl Sync for GcArm
impl Unpin for GcArm
impl UnsafeUnpin for GcArm
impl UnwindSafe for GcArm
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.