[][src]Struct zebra_chain::transaction::JoinSplitData

pub struct JoinSplitData<P: ZkSnarkProof> {
    pub first: JoinSplit<P>,
    pub rest: Vec<JoinSplit<P>>,
    pub pub_key: VerificationKeyBytes,
    pub sig: Signature,
}

A bundle of JoinSplit descriptions and signature data.

Fields

first: JoinSplit<P>

The first JoinSplit description, using proofs of type P.

Storing this separately from rest ensures that it is impossible to construct an invalid JoinSplitData with no JoinSplits.

However, it's not necessary to access or process first and rest separately, as the JoinSplitData::joinsplits method provides an iterator over all of the JoinSplits.

rest: Vec<JoinSplit<P>>

The rest of the JoinSplit descriptions, using proofs of type P.

The JoinSplitData::joinsplits method provides an iterator over all JoinSplits.

pub_key: VerificationKeyBytes

The public key for the JoinSplit signature.

sig: Signature

The JoinSplit signature.

Implementations

impl<P: ZkSnarkProof> JoinSplitData<P>[src]

pub fn joinsplits(&self) -> impl Iterator<Item = &JoinSplit<P>>[src]

Iterate over the JoinSplits in self.

Trait Implementations

impl<P: Clone + ZkSnarkProof> Clone for JoinSplitData<P>[src]

impl<P: Debug + ZkSnarkProof> Debug for JoinSplitData<P>[src]

impl<'de, P: ZkSnarkProof> Deserialize<'de> for JoinSplitData<P> where
    JoinSplit<P>: Deserialize<'de>,
    JoinSplit<P>: Deserialize<'de>, 
[src]

impl<P: Eq + ZkSnarkProof> Eq for JoinSplitData<P>[src]

impl<P: PartialEq + ZkSnarkProof> PartialEq<JoinSplitData<P>> for JoinSplitData<P>[src]

impl<P: ZkSnarkProof> Serialize for JoinSplitData<P> where
    JoinSplit<P>: Serialize,
    JoinSplit<P>: Serialize
[src]

impl<P: ZkSnarkProof> StructuralEq for JoinSplitData<P>[src]

impl<P: ZkSnarkProof> StructuralPartialEq for JoinSplitData<P>[src]

impl<P: ZkSnarkProof> ZcashSerialize for JoinSplitData<P>[src]

Auto Trait Implementations

impl<P> RefUnwindSafe for JoinSplitData<P> where
    P: RefUnwindSafe

impl<P> Send for JoinSplitData<P> where
    P: Send

impl<P> Sync for JoinSplitData<P> where
    P: Sync

impl<P> Unpin for JoinSplitData<P> where
    P: Unpin

impl<P> UnwindSafe for JoinSplitData<P> where
    P: UnwindSafe

Blanket Implementations

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

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

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

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

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

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

impl<T> Same<T> for T

type Output = T

Should always be Self

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<V, T> VZip<V> for T where
    V: MultiLane<T>,