#[non_exhaustive]pub struct OcsInclusionProof {
pub object_ref: Option<ObjectReference>,
pub merkle_proof: Option<MerkleProof>,
pub leaf_index: Option<u64>,
pub tree_root: Option<Bytes>,
pub object_data: Option<Bytes>,
}unstable only.Expand description
An Object Checkpoint State (OCS) inclusion proof.
The OCS is a Blake2b256 Merkle tree built by each checkpoint over the
set of object references it modified (created, mutated, unwrapped, or
otherwise written). Each leaf is a BCS-encoded
(ObjectID, SequenceNumber, ObjectDigest) tuple, with leaves arranged
in ascending ObjectID order. The tree’s root is committed to by the
containing CheckpointSummary via the CheckpointArtifacts variant of
its checkpoint_commitments.
An OcsInclusionProof proves that a particular leaf appears in this
tree. Combined with a verified CheckpointSummary it cryptographically
authenticates that a specific object reference was written in a specific
checkpoint.
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.object_ref: Option<ObjectReference>Object reference being proven: (object_id, version, digest).
For a deletion or wrap, digest is a framework sentinel value
and object_data is absent. Consumers that only care whether
the object is live after the change can check object_data
presence instead of inspecting the digest.
merkle_proof: Option<MerkleProof>Merkle inclusion proof for the leaf.
leaf_index: Option<u64>Position of the leaf in the modified-objects tree.
tree_root: Option<Bytes>32-byte Merkle root of the modified-objects tree.
object_data: Option<Bytes>BCS-encoded Object data at the version committed by this
checkpoint. Present iff the modification left the object live
(created, mutated, or unwrapped). Absent if the modification was
a deletion or wrap.
Implementations§
Source§impl OcsInclusionProof
impl OcsInclusionProof
pub const OBJECT_REF_FIELD: &'static MessageField
pub const MERKLE_PROOF_FIELD: &'static MessageField
pub const LEAF_INDEX_FIELD: &'static MessageField
pub const TREE_ROOT_FIELD: &'static MessageField
pub const OBJECT_DATA_FIELD: &'static MessageField
Source§impl OcsInclusionProof
impl OcsInclusionProof
pub fn path_builder() -> OcsInclusionProofFieldPathBuilder
Source§impl OcsInclusionProof
impl OcsInclusionProof
pub const fn const_default() -> Self
Sourcepub fn object_ref(&self) -> &ObjectReference
pub fn object_ref(&self) -> &ObjectReference
Returns the value of object_ref, or the default value if object_ref is unset.
Sourcepub fn object_ref_opt_mut(&mut self) -> Option<&mut ObjectReference>
pub fn object_ref_opt_mut(&mut self) -> Option<&mut ObjectReference>
Sourcepub fn object_ref_mut(&mut self) -> &mut ObjectReference
pub fn object_ref_mut(&mut self) -> &mut ObjectReference
Returns a mutable reference to object_ref.
If the field is unset, it is first initialized with the default value.
Sourcepub fn object_ref_opt(&self) -> Option<&ObjectReference>
pub fn object_ref_opt(&self) -> Option<&ObjectReference>
Sourcepub fn set_object_ref<T: Into<ObjectReference>>(&mut self, field: T)
pub fn set_object_ref<T: Into<ObjectReference>>(&mut self, field: T)
Sets object_ref with the provided value.
Sourcepub fn with_object_ref<T: Into<ObjectReference>>(self, field: T) -> Self
pub fn with_object_ref<T: Into<ObjectReference>>(self, field: T) -> Self
Sets object_ref with the provided value.
Sourcepub fn merkle_proof(&self) -> &MerkleProof
pub fn merkle_proof(&self) -> &MerkleProof
Returns the value of merkle_proof, or the default value if merkle_proof is unset.
Sourcepub fn merkle_proof_opt_mut(&mut self) -> Option<&mut MerkleProof>
pub fn merkle_proof_opt_mut(&mut self) -> Option<&mut MerkleProof>
Sourcepub fn merkle_proof_mut(&mut self) -> &mut MerkleProof
pub fn merkle_proof_mut(&mut self) -> &mut MerkleProof
Returns a mutable reference to merkle_proof.
If the field is unset, it is first initialized with the default value.
Sourcepub fn merkle_proof_opt(&self) -> Option<&MerkleProof>
pub fn merkle_proof_opt(&self) -> Option<&MerkleProof>
Sourcepub fn set_merkle_proof<T: Into<MerkleProof>>(&mut self, field: T)
pub fn set_merkle_proof<T: Into<MerkleProof>>(&mut self, field: T)
Sets merkle_proof with the provided value.
Sourcepub fn with_merkle_proof<T: Into<MerkleProof>>(self, field: T) -> Self
pub fn with_merkle_proof<T: Into<MerkleProof>>(self, field: T) -> Self
Sets merkle_proof with the provided value.
Sourcepub fn leaf_index_opt_mut(&mut self) -> Option<&mut u64>
pub fn leaf_index_opt_mut(&mut self) -> Option<&mut u64>
Sourcepub fn leaf_index_mut(&mut self) -> &mut u64
pub fn leaf_index_mut(&mut self) -> &mut u64
Returns a mutable reference to leaf_index.
If the field is unset, it is first initialized with the default value.
Sourcepub fn leaf_index_opt(&self) -> Option<u64>
pub fn leaf_index_opt(&self) -> Option<u64>
Sourcepub fn set_leaf_index(&mut self, field: u64)
pub fn set_leaf_index(&mut self, field: u64)
Sets leaf_index with the provided value.
Sourcepub fn with_leaf_index(self, field: u64) -> Self
pub fn with_leaf_index(self, field: u64) -> Self
Sets leaf_index with the provided value.
Sourcepub fn tree_root_opt(&self) -> Option<&[u8]>
pub fn tree_root_opt(&self) -> Option<&[u8]>
Sourcepub fn set_tree_root<T: Into<Bytes>>(&mut self, field: T)
pub fn set_tree_root<T: Into<Bytes>>(&mut self, field: T)
Sets tree_root with the provided value.
Sourcepub fn with_tree_root<T: Into<Bytes>>(self, field: T) -> Self
pub fn with_tree_root<T: Into<Bytes>>(self, field: T) -> Self
Sets tree_root with the provided value.
Sourcepub fn object_data_opt(&self) -> Option<&[u8]>
pub fn object_data_opt(&self) -> Option<&[u8]>
Sourcepub fn set_object_data<T: Into<Bytes>>(&mut self, field: T)
pub fn set_object_data<T: Into<Bytes>>(&mut self, field: T)
Sets object_data with the provided value.
Sourcepub fn with_object_data<T: Into<Bytes>>(self, field: T) -> Self
pub fn with_object_data<T: Into<Bytes>>(self, field: T) -> Self
Sets object_data with the provided value.
Source§impl OcsInclusionProof
impl OcsInclusionProof
Sourcepub fn leaf_index(&self) -> u64
pub fn leaf_index(&self) -> u64
Returns the value of leaf_index, or the default value if leaf_index is unset.
Sourcepub fn tree_root(&self) -> &[u8] ⓘ
pub fn tree_root(&self) -> &[u8] ⓘ
Returns the value of tree_root, or the default value if tree_root is unset.
Sourcepub fn object_data(&self) -> &[u8] ⓘ
pub fn object_data(&self) -> &[u8] ⓘ
Returns the value of object_data, or the default value if object_data is unset.
Trait Implementations§
Source§impl Clone for OcsInclusionProof
impl Clone for OcsInclusionProof
Source§fn clone(&self) -> OcsInclusionProof
fn clone(&self) -> OcsInclusionProof
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for OcsInclusionProof
impl Debug for OcsInclusionProof
Source§impl Default for OcsInclusionProof
impl Default for OcsInclusionProof
§impl<'de> Deserialize<'de> for OcsInclusionProof
impl<'de> Deserialize<'de> for OcsInclusionProof
§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<&OcsInclusionProof> for OcsInclusionProof
impl From<&OcsInclusionProof> for OcsInclusionProof
Source§fn from(value: &SdkOcsInclusionProof) -> Self
fn from(value: &SdkOcsInclusionProof) -> Self
Source§impl From<OcsInclusionProof> for OcsInclusionProof
impl From<OcsInclusionProof> for OcsInclusionProof
Source§fn from(value: SdkOcsInclusionProof) -> Self
fn from(value: SdkOcsInclusionProof) -> Self
Source§impl Message for OcsInclusionProof
impl Message for OcsInclusionProof
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 OcsInclusionProof
impl MessageFields for OcsInclusionProof
const FIELDS: &'static [&'static MessageField]
Source§impl PartialEq for OcsInclusionProof
impl PartialEq for OcsInclusionProof
§impl Serialize for OcsInclusionProof
impl Serialize for OcsInclusionProof
Source§impl TryFrom<&OcsInclusionProof> for OcsInclusionProof
impl TryFrom<&OcsInclusionProof> for OcsInclusionProof
Source§type Error = TryFromProtoError
type Error = TryFromProtoError
impl StructuralPartialEq for OcsInclusionProof
Auto Trait Implementations§
impl !Freeze for OcsInclusionProof
impl RefUnwindSafe for OcsInclusionProof
impl Send for OcsInclusionProof
impl Sync for OcsInclusionProof
impl Unpin for OcsInclusionProof
impl UnsafeUnpin for OcsInclusionProof
impl UnwindSafe for OcsInclusionProof
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.