pub struct SparseManifest {
pub tree_hash: Hash,
pub bitmap_root: Hash,
pub filter_hash: Hash,
pub leaf_count: u64,
}Expand description
Manifest committing to which tree entries the server is including in a sparse delivery. See SPEC-SPARSE-CHECKOUT §2.
All three fields are 32-byte BLAKE3 / SHA-256 digests. They are length-prefixed and content-addressed independently so a downstream codec can serialise them in any order.
Fields§
§tree_hash: HashBLAKE3 hash of the full tree object the manifest is derived
from. Lets the client correlate this manifest with the
tree_hash it asked the server for.
bitmap_root: HashRoot of the MerkleizedBitMap over the include / exclude
bitmap. SHA-256 (32 bytes) under the upstream mmr::Family
hasher. Verifier MUST recompute this from the delivered
bitmap chunks and reject on mismatch.
filter_hash: HashBLAKE3 hash of the canonicalised filter — see
hash_filter. Binds the manifest to a specific filter so
the server can’t substitute a different one mid-transfer.
leaf_count: u64Total number of leaves in the source tree (= bitmap length in
bits). Bounded by MAX_LEAVES.
Trait Implementations§
Source§impl Clone for SparseManifest
impl Clone for SparseManifest
Source§fn clone(&self) -> SparseManifest
fn clone(&self) -> SparseManifest
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for SparseManifest
Source§impl Debug for SparseManifest
impl Debug for SparseManifest
impl Eq for SparseManifest
Source§impl Hash for SparseManifest
impl Hash for SparseManifest
Source§impl PartialEq for SparseManifest
impl PartialEq for SparseManifest
Source§fn eq(&self, other: &SparseManifest) -> bool
fn eq(&self, other: &SparseManifest) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for SparseManifest
Auto Trait Implementations§
impl Freeze for SparseManifest
impl RefUnwindSafe for SparseManifest
impl Send for SparseManifest
impl Sync for SparseManifest
impl Unpin for SparseManifest
impl UnsafeUnpin for SparseManifest
impl UnwindSafe for SparseManifest
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
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§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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