pub struct ChangeSet<A, O> { /* private fields */ }Expand description
Immutable semantic delta between two exact generations.
Implementations§
Source§impl<A, O> ChangeSet<A, O>
impl<A, O> ChangeSet<A, O>
Sourcepub const fn from(&self) -> &Generation<A, O>
pub const fn from(&self) -> &Generation<A, O>
Exact immutable base endpoint.
Sourcepub const fn to(&self) -> &Generation<A, O>
pub const fn to(&self) -> &Generation<A, O>
Exact immutable resulting endpoint.
Sourcepub const fn changes(&self) -> &GenerationDiff
pub const fn changes(&self) -> &GenerationDiff
Stable path-independent records and namespace binding changes.
Sourcepub const fn work(&self) -> WorkCounters
pub const fn work(&self) -> WorkCounters
Exact bounded work used to authenticate and compute this delta.
Source§impl<A: AsyncAuthorityStore, O: AsyncObjectStore> ChangeSet<A, O>
impl<A: AsyncAuthorityStore, O: AsyncObjectStore> ChangeSet<A, O>
Sourcepub async fn changed_paths(
&self,
maximum_entries: u32,
) -> Result<Vec<ChangedPath>, WorkspaceError>
pub async fn changed_paths( &self, maximum_entries: u32, ) -> Result<Vec<ChangedPath>, WorkspaceError>
Resolves every changed record or binding to exact paths with one bounded traversal of each endpoint. Equal Merkle subtrees remain skipped by the semantic diff that created this set.
§Errors
Returns WorkspaceError::ChangedPathLimit instead of a partial result when either
endpoint exceeds maximum_entries.
Sourcepub async fn changed_paths_bounded(
&self,
maximum_entries: u32,
budget: WorkBudget,
cancellation: &CancellationToken,
) -> Result<OperationReceipt<Vec<ChangedPath>>, WorkspaceError>
pub async fn changed_paths_bounded( &self, maximum_entries: u32, budget: WorkBudget, cancellation: &CancellationToken, ) -> Result<OperationReceipt<Vec<ChangedPath>>, WorkspaceError>
Resolves changed paths with one cumulative work budget and explicit cancellation token. Partial traversal is never reported as exact.
Sourcepub async fn compose(
&self,
next: &ChangeSet<A, O>,
maximum_changes: u32,
) -> Result<ChangeSet<A, O>, WorkspaceError>
pub async fn compose( &self, next: &ChangeSet<A, O>, maximum_changes: u32, ) -> Result<ChangeSet<A, O>, WorkspaceError>
Composes contiguous immutable deltas into their exact net semantic change. Intermediate changes that cancel are absent from the result.
The implementation diffs the outer Merkle endpoints instead of concatenating records, preserving canonical rename, hard-link, revert, and equal-subtree behavior.
§Errors
Rejects non-contiguous or foreign deltas and bounded diff exhaustion.
Auto Trait Implementations§
impl<A, O> !RefUnwindSafe for ChangeSet<A, O>
impl<A, O> !UnwindSafe for ChangeSet<A, O>
impl<A, O> Freeze for ChangeSet<A, O>where
Generation<A, O>: Freeze,
impl<A, O> Send for ChangeSet<A, O>where
Generation<A, O>: Send,
impl<A, O> Sync for ChangeSet<A, O>where
Generation<A, O>: Sync,
impl<A, O> Unpin for ChangeSet<A, O>where
Generation<A, O>: Unpin,
impl<A, O> UnsafeUnpin for ChangeSet<A, O>where
Generation<A, O>: UnsafeUnpin,
Blanket Implementations§
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request