aztec-nr - protocol_types::traits

Trait Deserialize

pub trait Deserialize {
    let N: u32;

    // Required methods
    pub fn deserialize(fields: [Field; N]) -> Self;
}

Trait for deserializing Noir types from arrays of Fields.

An implementation of the Deserialize trait has to follow Noir's intrinsic serialization (each member of a struct converted directly into one or more Fields without any packing or compression). This trait is typically used when deserializing return values from function calls in Noir. Since the same function could be called from TypeScript (TS), in which case the TS deserialization would get used, we need to have a match between the 2.

Associated Constants

Example

impl<let M: u32> Deserialize for str<M> {
    let N: u32 = M;

    #[inline_always]
    fn deserialize(fields: [Field; Self::N]) -> Self {
        str::<Self::N>::from(fields.map(|value| value as u8))
    }
}

Required methods

pub fn deserialize(fields: [Field; N]) -> Self

Implementors

impl Deserialize for ()

impl<T0, T1> Deserialize for (T0, T1)
where T0: Deserialize, T1: Deserialize

impl<T0, T1, T2> Deserialize for (T0, T1, T2)
where T0: Deserialize, T1: Deserialize, T2: Deserialize

impl<T0, T1, T2, T3> Deserialize for (T0, T1, T2, T3)

impl<T0, T1, T2, T3, T4> Deserialize for (T0, T1, T2, T3, T4)

impl<T0, T1, T2, T3, T4, T5> Deserialize for (T0, T1, T2, T3, T4, T5)

impl<T1> Deserialize for (T1,)
where T1: Deserialize

impl Deserialize for AddressNote

impl Deserialize for AppendOnlyTreeSnapshot

impl Deserialize for AuthorizationSelector

impl Deserialize for AvmAccumulatedData

impl Deserialize for AvmAccumulatedDataArrayLengths

impl Deserialize for AvmCircuitPublicInputs

impl Deserialize for AztecAddress

impl Deserialize for BlockConstantData

impl Deserialize for BlockHeader

impl<let M: u32, T> Deserialize for BoundedVec<T, M>
where T: Deserialize

impl Deserialize for CallContext

impl Deserialize for CheckpointConstantData

impl Deserialize for CheckpointHeader

impl<let N: u32, T> Deserialize for ClaimedLengthArray<T, N>
where T: Deserialize

impl<let M: u32, let N: u32> Deserialize for CompressedString<N, M>

impl Deserialize for ContentCommitment

impl Deserialize for ContractClassId

impl Deserialize for ContractInstance

impl<T> Deserialize for Counted<T>
where T: Deserialize

impl Deserialize for EmbeddedCurvePoint

impl Deserialize for Empty

impl Deserialize for EpochConstantData

impl Deserialize for EthAddress

impl Deserialize for EventSelector

impl Deserialize for Fancier

impl Deserialize for FeeRecipient

impl Deserialize for Field

impl Deserialize for FieldCompressedString

impl Deserialize for FunctionData

impl Deserialize for FunctionSelector

impl Deserialize for Gas

impl Deserialize for GasFees

impl Deserialize for GasSettings

impl Deserialize for GlobalVariables

impl Deserialize for HasArray

impl<let N: u32, T> Deserialize for HasArrayWithGenerics<T, N>
where T: Deserialize

impl Deserialize for IvpkM

impl Deserialize for KeyValidationRequest

impl Deserialize for KeyValidationRequestAndGenerator

impl Deserialize for L2ToL1Message

impl<let N: u32> Deserialize for Log<N>

impl Deserialize for LogHash

impl<let M: u32, let N: u32> Deserialize for MembershipWitness<N, M>

impl Deserialize for MessageContext

impl Deserialize for MockStruct

impl Deserialize for NoteMetadata

impl Deserialize for NpkM

impl Deserialize for Nullifier

impl Deserialize for NullifierLeafPreimage

impl Deserialize for NullifierMembershipWitness

impl<T> Deserialize for Option<T>
where T: Deserialize

impl Deserialize for OvpkM

impl Deserialize for PartialAddress

impl Deserialize for PartialStateReference

impl Deserialize for PartialUintNote

impl Deserialize for Poseidon2Sponge

impl Deserialize for PrivateCallRequest

impl Deserialize for PrivateCircuitPublicInputs

impl Deserialize for PrivateLogData

impl Deserialize for PrivateToAvmAccumulatedData

impl Deserialize for PrivateToAvmAccumulatedDataArrayLengths

impl Deserialize for PrivateToPublicAccumulatedData

impl Deserialize for PrivateToPublicKernelCircuitPublicInputs

impl Deserialize for PrivateToRollupAccumulatedData

impl Deserialize for PrivateToRollupKernelCircuitPublicInputs

impl Deserialize for ProtocolContracts

impl Deserialize for PublicCallRequest

impl Deserialize for PublicCallRequestArrayLengths

impl Deserialize for PublicDataTreeLeafPreimage

impl Deserialize for PublicDataWitness

impl Deserialize for PublicDataWrite

impl Deserialize for PublicKeys

impl Deserialize for PublicKeysHash

impl Deserialize for PublicLogs

impl<Note> Deserialize for RetrievedNote<Note>
where Note: Deserialize

impl<T> Deserialize for Scoped<T>
where T: Deserialize

impl Deserialize for Smol

impl Deserialize for SpongeBlob

impl Deserialize for StateReference

impl Deserialize for TestAccount

impl Deserialize for TestValue

impl Deserialize for TpkM

impl Deserialize for TreeSnapshots

impl Deserialize for TxConstantData

impl Deserialize for TxContext

impl Deserialize for TxRequest

impl Deserialize for UintNote

impl Deserialize for ValueNote

impl<let M: u32, T> Deserialize for [T; M]
where T: Deserialize

impl Deserialize for bool

impl Deserialize for i16

impl Deserialize for i32

impl Deserialize for i64

impl Deserialize for i8

impl<let M: u32> Deserialize for str<M>

impl Deserialize for u1

impl Deserialize for u128

impl Deserialize for u16

impl Deserialize for u32

impl Deserialize for u64

impl Deserialize for u8