Skip to main content

NamedRootRetention

Enum NamedRootRetention 

Source
pub enum NamedRootRetention {
    All,
    Exact {
        names: Vec<Vec<u8>>,
    },
    Prefix {
        prefix: Vec<u8>,
    },
    NewestByName {
        prefix: Vec<u8>,
        count: usize,
    },
    UpdatedSince {
        prefix: Vec<u8>,
        min_updated_at_millis: u64,
    },
}
Expand description

Policy for selecting named roots to retain during garbage collection.

NewestByName keeps the lexicographically greatest names matching prefix. This works well for names that include sortable sequence numbers or timestamps, for example checkpoint/000042 or checkpoint/2026-07-01T12:00:00Z.

Variants§

§

All

Retain every named root in the manifest store.

§

Exact

Retain an explicit list of root names.

Fields

§names: Vec<Vec<u8>>

Exact names to load.

§

Prefix

Retain every named root whose name starts with prefix.

Fields

§prefix: Vec<u8>

Name prefix to retain.

§

NewestByName

Retain the lexicographically newest count roots with a prefix.

Fields

§prefix: Vec<u8>

Name prefix to retain.

§count: usize

Maximum number of roots to retain.

§

UpdatedSince

Retain roots with updated_at_millis >= min_updated_at_millis.

Fields

§prefix: Vec<u8>

Optional name prefix to retain.

§min_updated_at_millis: u64

Minimum update timestamp in Unix milliseconds.

Implementations§

Source§

impl NamedRootRetention

Source

pub fn all() -> Self

Retain every named root in the manifest store.

Source

pub fn exact<I, N>(names: I) -> Self
where I: IntoIterator<Item = N>, N: AsRef<[u8]>,

Retain an explicit list of named roots.

Source

pub fn prefix(prefix: impl AsRef<[u8]>) -> Self

Retain every named root whose name starts with prefix.

Source

pub fn newest_by_name(prefix: impl AsRef<[u8]>, count: usize) -> Self

Retain the lexicographically newest count roots with prefix.

Source

pub fn updated_since( prefix: impl AsRef<[u8]>, min_updated_at_millis: u64, ) -> Self

Retain roots updated at or after min_updated_at_millis.

Source

pub fn updated_within( prefix: impl AsRef<[u8]>, now_millis: u64, max_age: Duration, ) -> Self

Retain roots updated within max_age before now_millis.

now_millis is explicit so tests, replay, and distributed systems can choose their own clock source. The cutoff saturates at zero when max_age is larger than now_millis.

Source

pub fn updated_within_millis( prefix: impl AsRef<[u8]>, now_millis: u64, window_millis: u64, ) -> Self

Retain roots updated within window_millis before now_millis.

Source

pub fn updated_within_days( prefix: impl AsRef<[u8]>, now_millis: u64, days: u64, ) -> Self

Retain roots updated within days calendar-day windows before now_millis.

This is a convenience wrapper for retention rules such as “keep roots updated in the last 7 days”. A day is treated as exactly 86,400,000 milliseconds.

Trait Implementations§

Source§

impl Clone for NamedRootRetention

Source§

fn clone(&self) -> NamedRootRetention

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for NamedRootRetention

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for NamedRootRetention

Source§

fn eq(&self, other: &NamedRootRetention) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for NamedRootRetention

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.