Skip to main content

NativeTreeMaterializationBackend

Struct NativeTreeMaterializationBackend 

Source
pub struct NativeTreeMaterializationBackend { /* private fields */ }
Expand description

Native same-volume tree publisher used for root checkout application.

Callers first materialize the exact target generation into target. The operation directory may be a sibling of the checkout so no repository marker is required, but it must not be the checkout, an ancestor, or a descendant. Each top-level binding is then exchanged with the live root independently. The displaced live binding remains in backup until the journal is terminal, preserving metadata, sparse allocation, links, and hard-link identity for rollback without re-encoding host state.

Implementations§

Source§

impl NativeTreeMaterializationBackend

Source

pub fn new( root: impl Into<PathBuf>, operation_directory: impl Into<PathBuf>, ) -> Result<Self, NativeTreeMaterializationError>

Binds an existing checkout root and same-volume operation directory. operation_directory/target must contain the fully materialized target tree; operation_directory/backup is owned by this backend.

Trait Implementations§

Source§

impl Clone for NativeTreeMaterializationBackend

Source§

fn clone(&self) -> Self

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 MaterializationBackend for NativeTreeMaterializationBackend

Available on non-WebAssembly only.
Source§

type Error = NativeTreeMaterializationError

Backend error.
Source§

async fn capture( &self, edit: &MaterializationEdit, ) -> Result<MaterializationPreimage, Self::Error>

Captures a complete preimage without mutating the checkout.
Source§

async fn observe( &self, edit: &MaterializationEdit, preimage: &MaterializationPreimage, ) -> Result<MaterializationObservation, Self::Error>

Classifies the current path against both durable endpoints. Read more
Source§

async fn apply( &self, edit: &MaterializationEdit, preimage: &MaterializationPreimage, ) -> Result<(), Self::Error>

Applies one declarative edit idempotently.
Source§

async fn restore( &self, edit: &MaterializationEdit, preimage: &MaterializationPreimage, ) -> Result<(), Self::Error>

Restores the exact preimage for one edit idempotently.
Source§

fn verify_source( &self, _from: GenerationId, ) -> impl Future<Output = Result<bool, Self::Error>> + Send

Verifies that the checkout still represents the plan’s exact source. Backends without an independently observable generation may retain the conservative default and provide equivalent fencing externally.

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> StorageFuture for T
where T: Send,

Source§

impl<T> StorageProvider for T
where T: Send + Sync + ?Sized,

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more