#[non_exhaustive]pub struct MerkleNonInclusionProof {
pub index: Option<u64>,
pub left_leaf: Option<MerkleNeighbourLeaf>,
pub right_leaf: Option<MerkleNeighbourLeaf>,
}unstable only.Expand description
A non-inclusion proof for a Blake2b256 Merkle tree built over leaves in sorted order.
The proof carries the absent leaf’s would-be position in sort order plus inclusion proofs for the leaves immediately before and after it. A verifier checks that the two neighbours strictly bracket the target’s sort key and that they sit at adjacent indices in the tree.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.index: Option<u64>The 0-based index the target would occupy in sort order if it
were present. left_leaf is unset iff index == 0 (the target
would be the very first leaf); right_leaf is unset iff the
target would be appended past the last leaf, in which case
left_leaf.merkle_proof must identify the tree’s right-most leaf.
left_leaf: Option<MerkleNeighbourLeaf>Sort-order neighbour with sort key strictly less than the target,
accompanied by its inclusion proof at position index - 1.
right_leaf: Option<MerkleNeighbourLeaf>Sort-order neighbour with sort key strictly greater than the
target, accompanied by its inclusion proof at position index.
Implementations§
Source§impl MerkleNonInclusionProof
impl MerkleNonInclusionProof
pub const INDEX_FIELD: &'static MessageField
pub const LEFT_LEAF_FIELD: &'static MessageField
pub const RIGHT_LEAF_FIELD: &'static MessageField
Source§impl MerkleNonInclusionProof
impl MerkleNonInclusionProof
pub fn path_builder() -> MerkleNonInclusionProofFieldPathBuilder
Source§impl MerkleNonInclusionProof
impl MerkleNonInclusionProof
pub const fn const_default() -> Self
Sourcepub fn index_opt_mut(&mut self) -> Option<&mut u64>
pub fn index_opt_mut(&mut self) -> Option<&mut u64>
Sourcepub fn index_mut(&mut self) -> &mut u64
pub fn index_mut(&mut self) -> &mut u64
Returns a mutable reference to index.
If the field is unset, it is first initialized with the default value.
Sourcepub fn with_index(self, field: u64) -> Self
pub fn with_index(self, field: u64) -> Self
Sets index with the provided value.
Sourcepub fn left_leaf(&self) -> &MerkleNeighbourLeaf
pub fn left_leaf(&self) -> &MerkleNeighbourLeaf
Returns the value of left_leaf, or the default value if left_leaf is unset.
Sourcepub fn left_leaf_opt_mut(&mut self) -> Option<&mut MerkleNeighbourLeaf>
pub fn left_leaf_opt_mut(&mut self) -> Option<&mut MerkleNeighbourLeaf>
Sourcepub fn left_leaf_mut(&mut self) -> &mut MerkleNeighbourLeaf
pub fn left_leaf_mut(&mut self) -> &mut MerkleNeighbourLeaf
Returns a mutable reference to left_leaf.
If the field is unset, it is first initialized with the default value.
Sourcepub fn left_leaf_opt(&self) -> Option<&MerkleNeighbourLeaf>
pub fn left_leaf_opt(&self) -> Option<&MerkleNeighbourLeaf>
Sourcepub fn set_left_leaf<T: Into<MerkleNeighbourLeaf>>(&mut self, field: T)
pub fn set_left_leaf<T: Into<MerkleNeighbourLeaf>>(&mut self, field: T)
Sets left_leaf with the provided value.
Sourcepub fn with_left_leaf<T: Into<MerkleNeighbourLeaf>>(self, field: T) -> Self
pub fn with_left_leaf<T: Into<MerkleNeighbourLeaf>>(self, field: T) -> Self
Sets left_leaf with the provided value.
Sourcepub fn right_leaf(&self) -> &MerkleNeighbourLeaf
pub fn right_leaf(&self) -> &MerkleNeighbourLeaf
Returns the value of right_leaf, or the default value if right_leaf is unset.
Sourcepub fn right_leaf_opt_mut(&mut self) -> Option<&mut MerkleNeighbourLeaf>
pub fn right_leaf_opt_mut(&mut self) -> Option<&mut MerkleNeighbourLeaf>
Sourcepub fn right_leaf_mut(&mut self) -> &mut MerkleNeighbourLeaf
pub fn right_leaf_mut(&mut self) -> &mut MerkleNeighbourLeaf
Returns a mutable reference to right_leaf.
If the field is unset, it is first initialized with the default value.
Sourcepub fn right_leaf_opt(&self) -> Option<&MerkleNeighbourLeaf>
pub fn right_leaf_opt(&self) -> Option<&MerkleNeighbourLeaf>
Sourcepub fn set_right_leaf<T: Into<MerkleNeighbourLeaf>>(&mut self, field: T)
pub fn set_right_leaf<T: Into<MerkleNeighbourLeaf>>(&mut self, field: T)
Sets right_leaf with the provided value.
Sourcepub fn with_right_leaf<T: Into<MerkleNeighbourLeaf>>(self, field: T) -> Self
pub fn with_right_leaf<T: Into<MerkleNeighbourLeaf>>(self, field: T) -> Self
Sets right_leaf with the provided value.
Trait Implementations§
Source§impl Clone for MerkleNonInclusionProof
impl Clone for MerkleNonInclusionProof
Source§fn clone(&self) -> MerkleNonInclusionProof
fn clone(&self) -> MerkleNonInclusionProof
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MerkleNonInclusionProof
impl Debug for MerkleNonInclusionProof
Source§impl Default for MerkleNonInclusionProof
impl Default for MerkleNonInclusionProof
§impl<'de> Deserialize<'de> for MerkleNonInclusionProof
impl<'de> Deserialize<'de> for MerkleNonInclusionProof
§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Source§impl From<&MerkleNonInclusionProof<ObjectReference>> for MerkleNonInclusionProof
impl From<&MerkleNonInclusionProof<ObjectReference>> for MerkleNonInclusionProof
Source§fn from(value: &SdkMerkleNonInclusionProof<ObjectReference>) -> Self
fn from(value: &SdkMerkleNonInclusionProof<ObjectReference>) -> Self
Source§impl From<MerkleNonInclusionProof<ObjectReference>> for MerkleNonInclusionProof
impl From<MerkleNonInclusionProof<ObjectReference>> for MerkleNonInclusionProof
Source§fn from(value: SdkMerkleNonInclusionProof<ObjectReference>) -> Self
fn from(value: SdkMerkleNonInclusionProof<ObjectReference>) -> Self
Source§impl Message for MerkleNonInclusionProof
impl Message for MerkleNonInclusionProof
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.Source§impl MessageFields for MerkleNonInclusionProof
impl MessageFields for MerkleNonInclusionProof
const FIELDS: &'static [&'static MessageField]
Source§impl PartialEq for MerkleNonInclusionProof
impl PartialEq for MerkleNonInclusionProof
§impl Serialize for MerkleNonInclusionProof
impl Serialize for MerkleNonInclusionProof
Source§impl TryFrom<&MerkleNonInclusionProof> for MerkleNonInclusionProof<ObjectReference>
impl TryFrom<&MerkleNonInclusionProof> for MerkleNonInclusionProof<ObjectReference>
Source§type Error = TryFromProtoError
type Error = TryFromProtoError
impl StructuralPartialEq for MerkleNonInclusionProof
Auto Trait Implementations§
impl Freeze for MerkleNonInclusionProof
impl RefUnwindSafe for MerkleNonInclusionProof
impl Send for MerkleNonInclusionProof
impl Sync for MerkleNonInclusionProof
impl Unpin for MerkleNonInclusionProof
impl UnsafeUnpin for MerkleNonInclusionProof
impl UnwindSafe for MerkleNonInclusionProof
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moreSource§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,
§impl<T> Conv for T
impl<T> Conv for T
Source§impl<'de, T> FromBcs for Twhere
T: Deserialize<'de>,
impl<'de, T> FromBcs for Twhere
T: Deserialize<'de>,
fn from_bcs<'de>(bytes: &'de [u8]) -> Result<Self, Error>where
Self: Deserialize<'de>,
fn from_bcs_base64(base64: &str) -> Result<Self, Error>where
Self: DeserializeOwned,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.