Skip to main content

SnapshotBundle

Struct SnapshotBundle 

Source
pub struct SnapshotBundle {
    pub format_version: u32,
    pub tree: Tree,
    pub nodes: Vec<SnapshotBundleNode>,
}
Expand description

Self-contained transport bundle for one tree and its reachable node bytes.

The bundle is intended for import/export between stores, processes, and language bindings. nodes should contain exactly the node CIDs reachable from tree.root, sorted by raw CID bytes for deterministic transport.

Fields§

§format_version: u32

Bundle schema version. Currently always 1.

§tree: Tree

Tree handle the imported store will be able to read.

§nodes: Vec<SnapshotBundleNode>

Reachable serialized nodes for the tree.

Implementations§

Source§

impl SnapshotBundle

Source

pub fn new(tree: Tree, nodes: Vec<SnapshotBundleNode>) -> Self

Create a versioned snapshot bundle from a tree and reachable node bytes.

Source

pub fn node_count(&self) -> usize

Number of serialized nodes in the bundle.

Source

pub fn byte_count(&self) -> usize

Total serialized node bytes in the bundle.

Source

pub fn digest(&self) -> Result<Cid, Error>

Return the SHA-256 digest of this bundle’s canonical byte encoding.

The digest is stable for semantically equivalent bundles: node entries are canonicalized by CID before encoding, so caller-side ordering does not affect the result.

Source

pub fn summary(&self) -> Result<SnapshotBundleSummary, Error>

Return validated metadata for this bundle without importing it.

The summary canonicalizes node order, deduplicates identical repeated nodes, and verifies each node byte payload against its CID.

Source

pub fn verify(&self) -> Result<SnapshotBundleVerification, Error>

Verify that this bundle is complete and contains no unreachable nodes.

This check is read-only: it validates version, canonicalizes nodes, verifies every node byte payload by CID, decodes reachable nodes from the supplied bytes, and compares the reachable CID set with the bundled CID set.

Source

pub fn validate_format_version(&self) -> Result<(), Error>

Validate that the bundle version is supported by this crate.

Source

pub fn to_bytes(&self) -> Result<Vec<u8>, Error>

Serialize this bundle as deterministic, versioned bytes.

The encoded form canonicalizes node order by CID bytes and deduplicates repeated identical nodes. It rejects unsupported bundle versions, malformed CIDs, and node bytes whose content hash does not match the supplied CID.

Source

pub fn from_bytes(bytes: &[u8]) -> Result<Self, Error>

Decode a deterministic, versioned snapshot bundle byte payload.

Trait Implementations§

Source§

impl Clone for SnapshotBundle

Source§

fn clone(&self) -> SnapshotBundle

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 SnapshotBundle

Source§

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

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

impl PartialEq for SnapshotBundle

Source§

fn eq(&self, other: &SnapshotBundle) -> 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 SnapshotBundle

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.