[−][src]Struct ibc_proto::LeafOp
LeafOp represents the raw key-value data we wish to prove, and must be flexible to represent the internal transformation from the original key-value pairs into the basis hash, for many existing merkle trees.
key and value are passed in. So that the signature of this operation is: leafOp(key, value) -> output
To process this, first prehash the keys and values if needed (ANY means no hash in this case): hkey = prehashKey(key) hvalue = prehashValue(value)
Then combine the bytes, and hash it output = hash(prefix || length(hkey) || hkey || length(hvalue) || hvalue)
Fields
hash: i32
prehash_key: i32
prehash_value: i32
length: i32
prefix: Vec<u8>
prefix is a fixed bytes that may optionally be included at the beginning to differentiate a leaf node from an inner node.
Implementations
impl LeafOp
[src]
pub fn hash(&self) -> HashOp
[src]
Returns the enum value of hash
, or the default if the field is set to an invalid enum value.
pub fn set_hash(&mut self, value: HashOp)
[src]
Sets hash
to the provided enum value.
pub fn prehash_key(&self) -> HashOp
[src]
Returns the enum value of prehash_key
, or the default if the field is set to an invalid enum value.
pub fn set_prehash_key(&mut self, value: HashOp)
[src]
Sets prehash_key
to the provided enum value.
pub fn prehash_value(&self) -> HashOp
[src]
Returns the enum value of prehash_value
, or the default if the field is set to an invalid enum value.
pub fn set_prehash_value(&mut self, value: HashOp)
[src]
Sets prehash_value
to the provided enum value.
pub fn length(&self) -> LengthOp
[src]
Returns the enum value of length
, or the default if the field is set to an invalid enum value.
pub fn set_length(&mut self, value: LengthOp)
[src]
Sets length
to the provided enum value.
Trait Implementations
impl Clone for LeafOp
[src]
impl Debug for LeafOp
[src]
impl Default for LeafOp
[src]
impl Message for LeafOp
[src]
fn encode_raw<B>(&self, buf: &mut B) where
B: BufMut,
[src]
B: BufMut,
fn merge_field<B>(
&mut self,
tag: u32,
wire_type: WireType,
buf: &mut B,
ctx: DecodeContext
) -> Result<(), DecodeError> where
B: Buf,
[src]
&mut self,
tag: u32,
wire_type: WireType,
buf: &mut B,
ctx: DecodeContext
) -> Result<(), DecodeError> where
B: Buf,
fn encoded_len(&self) -> usize
[src]
fn clear(&mut self)
[src]
fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
B: BufMut,
[src]
B: BufMut,
fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
B: BufMut,
[src]
B: BufMut,
fn decode<B>(buf: B) -> Result<Self, DecodeError> where
B: Buf,
Self: Default,
[src]
B: Buf,
Self: Default,
fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError> where
B: Buf,
Self: Default,
[src]
B: Buf,
Self: Default,
fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError> where
B: Buf,
[src]
B: Buf,
fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError> where
B: Buf,
[src]
B: Buf,
impl PartialEq<LeafOp> for LeafOp
[src]
impl StructuralPartialEq for LeafOp
[src]
Auto Trait Implementations
impl RefUnwindSafe for LeafOp
impl Send for LeafOp
impl Sync for LeafOp
impl Unpin for LeafOp
impl UnwindSafe for LeafOp
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,