[][src]Struct ics23::LeafOp

pub struct LeafOp {
    pub hash: i32,
    pub prehash_key: i32,
    pub prehash_value: i32,
    pub length: i32,
    pub prefix: Vec<u8>,
}

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: i32prehash_key: i32prehash_value: i32length: i32prefix: Vec<u8>

prefix is a fixed bytes that may optionally be included at the beginning to differentiate a leaf node from an inner node.

Methods

impl LeafOp[src]

pub fn hash(&self) -> HashOp[src]

pub fn set_hash(&mut self, value: HashOp)[src]

pub fn prehash_key(&self) -> HashOp[src]

pub fn set_prehash_key(&mut self, value: HashOp)[src]

pub fn prehash_value(&self) -> HashOp[src]

pub fn set_prehash_value(&mut self, value: HashOp)[src]

pub fn length(&self) -> LengthOp[src]

pub fn set_length(&mut self, value: LengthOp)[src]

Trait Implementations

impl PartialEq<LeafOp> for LeafOp[src]

impl Default for LeafOp[src]

impl Clone for LeafOp[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for LeafOp[src]

impl Message for LeafOp[src]

fn encode<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
    B: BufMut
[src]

Encodes the message to a buffer. Read more

fn encode_length_delimited<B>(&self, buf: &mut B) -> Result<(), EncodeError> where
    B: BufMut
[src]

Encodes the message with a length-delimiter to a buffer. Read more

fn decode<B>(buf: B) -> Result<Self, DecodeError> where
    B: IntoBuf,
    Self: Default
[src]

Decodes an instance of the message from a buffer. Read more

fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError> where
    B: IntoBuf,
    Self: Default
[src]

Decodes a length-delimited instance of the message from the buffer.

fn merge<B>(&mut self, buf: B) -> Result<(), DecodeError> where
    B: IntoBuf
[src]

Decodes an instance of the message from a buffer, and merges it into self. Read more

fn merge_length_delimited<B>(&mut self, buf: B) -> Result<(), DecodeError> where
    B: IntoBuf
[src]

Decodes a length-delimited instance of the message from buffer, and merges it into self. Read more

Auto Trait Implementations

impl Send for LeafOp

impl Unpin for LeafOp

impl Sync for LeafOp

impl UnwindSafe for LeafOp

impl RefUnwindSafe for LeafOp

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self