pub trait AnchorSerialize {
    // Required method
    fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
       where W: Write;

    // Provided method
    fn try_to_vec(&self) -> Result<Vec<u8>, Error> { ... }
}
Expand description

A data-structure that can be serialized into binary format by NBOR.

use borsh::BorshSerialize;

#[derive(BorshSerialize)]
struct MyBorshSerializableStruct {
    value: String,
}

let x = MyBorshSerializableStruct { value: "hello".to_owned() };
let mut buffer: Vec<u8> = Vec::new();
x.serialize(&mut buffer).unwrap();
let single_serialized_buffer_len = buffer.len();

x.serialize(&mut buffer).unwrap();
assert_eq!(buffer.len(), single_serialized_buffer_len * 2);

let mut buffer: Vec<u8> = vec![0; 1024 + single_serialized_buffer_len];
let mut buffer_slice_enough_for_the_data = &mut buffer[1024..1024 + single_serialized_buffer_len];
x.serialize(&mut buffer_slice_enough_for_the_data).unwrap();

Required Methods§

source

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

Provided Methods§

source

fn try_to_vec(&self) -> Result<Vec<u8>, Error>

Serialize this instance into a vector of bytes.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl BorshSerialize for SocketAddr

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for QueueType

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for MerkleTreeEvent

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for StakeState

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for StakeStateV2

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for bool

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for f32

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for f64

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for i8

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for i16

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for i32

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for i64

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for i128

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for isize

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for str

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for u8

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for u16

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for u32

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for u64

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for u128

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for ()

source§

fn serialize<W>(&self, _writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for usize

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for Ipv4Addr

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for Ipv6Addr

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for SocketAddrV4

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for SocketAddrV6

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for NonZero<i8>

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for NonZero<i16>

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for NonZero<i32>

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for NonZero<i64>

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for NonZero<i128>

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for NonZero<u8>

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for NonZero<u16>

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for NonZero<u32>

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for NonZero<u64>

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for NonZero<u128>

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for NonZero<usize>

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for AppendLeavesToMerkleTrees
where Vec<(u8, [u8; 32])>: BorshSerialize,

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for DeregisterProgram

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for InitializeAddressMerkleTreeAndQueue

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for InitializeGroupAuthority

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for InitializeStateMerkleTreeAndNullifierQueue

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for InsertAddresses
where Vec<[u8; 32]>: BorshSerialize,

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for InsertIntoNullifierQueues
where Vec<[u8; 32]>: BorshSerialize,

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for NullifyLeaves

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for RegisterProgramToGroup

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for RolloverAddressMerkleTreeAndQueue

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for RolloverStateMerkleTreeAndNullifierQueue

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for UpdateAddressMerkleTree

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for UpdateGroupAuthority

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for AppendLeaves

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for DeregisterProgram

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for InitializeAddressMerkleTreeAndQueue

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for AddressMerkleTreeConfig

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for InitializeGroupAuthority

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for InitializeStateMerkleTreeAndNullifierQueue

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for NullifierQueueConfig

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for StateMerkleTreeConfig

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for InsertIntoQueues

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for NullifyLeaves

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for RegisterProgramToGroup

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for RegisteredProgram

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for RolloverAddressMerkleTreeAndQueue

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for RolloverStateMerkleTreeAndNullifierQueue

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for UpdateAddressMerkleTree

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for UpdateGroupAuthority

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for GroupAuthority

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for ChangelogEvent

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for IndexedMerkleTreeEvent

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for MerkleTreeEvents

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for NullifierEvent

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for PathNode

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for CompressedProof

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for StakeFlags

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for Authorized

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for Delegation

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for Lockup

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for Meta

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl BorshSerialize for Stake

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<I> BorshSerialize for IndexedMerkleTreeUpdate<I>

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<I> BorshSerialize for RawIndexedElement<I>

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T0> BorshSerialize for (T0,)
where T0: BorshSerialize,

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T0, T1> BorshSerialize for (T0, T1)

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T0, T1, T2> BorshSerialize for (T0, T1, T2)

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

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

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

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

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

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

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

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

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> BorshSerialize for (T0, T1, T2, T3, T4, T5, T6, T7)

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> BorshSerialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8)

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> BorshSerialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> BorshSerialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> BorshSerialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> BorshSerialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> BorshSerialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> BorshSerialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> BorshSerialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> BorshSerialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> BorshSerialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17)

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> BorshSerialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18)

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> BorshSerialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19)

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T> BorshSerialize for Option<T>
where T: BorshSerialize,

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T> BorshSerialize for &T
where T: BorshSerialize + ?Sized,

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T> BorshSerialize for [T]
where T: BorshSerialize,

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T> BorshSerialize for PhantomData<T>
where T: ?Sized,

source§

fn serialize<W>(&self, _: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T> BorshSerialize for Range<T>
where T: BorshSerialize,

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T, E> BorshSerialize for Result<T, E>

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

source§

impl<T, const N: usize> BorshSerialize for [T; N]
where T: BorshSerialize,

source§

fn serialize<W>(&self, writer: &mut W) -> Result<(), Error>
where W: Write,

Implementors§

source§

impl BorshSerialize for Definition

source§

impl BorshSerialize for Fields

source§

impl BorshSerialize for InitializeCpiContextAccount

source§

impl BorshSerialize for InvokeCpiInstruction

source§

impl BorshSerialize for InvokeInstruction

source§

impl BorshSerialize for InitCpiContextAccount

source§

impl BorshSerialize for Invoke

source§

impl BorshSerialize for InvokeCpi

source§

impl BorshSerialize for StubIdlBuild

source§

impl BorshSerialize for InstructionDataInvoke

source§

impl BorshSerialize for NewAddressParams

source§

impl BorshSerialize for NewAddressParamsPacked

source§

impl BorshSerialize for OutputCompressedAccountWithContext

source§

impl BorshSerialize for OutputCompressedAccountWithPackedContext

source§

impl BorshSerialize for light_system_program::invoke::processor::CompressedProof

source§

impl BorshSerialize for CompressedSolPda

source§

impl BorshSerialize for CompressedAccount

source§

impl BorshSerialize for CompressedAccountData

source§

impl BorshSerialize for CompressedAccountWithMerkleContext

source§

impl BorshSerialize for MerkleContext

source§

impl BorshSerialize for PackedCompressedAccountWithMerkleContext

source§

impl BorshSerialize for PackedMerkleContext

source§

impl BorshSerialize for QueueIndex

source§

impl BorshSerialize for MerkleTreeSequenceNumber

source§

impl BorshSerialize for PublicTransactionEvent

source§

impl BorshSerialize for CompressedCpiContext

source§

impl BorshSerialize for CpiContextAccount

source§

impl BorshSerialize for InstructionDataInvokeCpi

source§

impl BorshSerialize for String

source§

impl BorshSerialize for BorshSchemaContainer

source§

impl BorshSerialize for Pubkey

source§

impl<K, V> BorshSerialize for BTreeMap<K, V>

source§

impl<K, V, H> BorshSerialize for HashMap<K, V, H>

source§

impl<T> BorshSerialize for Cow<'_, T>

source§

impl<T> BorshSerialize for Box<T>
where T: BorshSerialize + ?Sized,

source§

impl<T> BorshSerialize for BTreeSet<T>
where T: BorshSerialize,

source§

impl<T> BorshSerialize for BinaryHeap<T>
where T: BorshSerialize,

source§

impl<T> BorshSerialize for LinkedList<T>
where T: BorshSerialize,

source§

impl<T> BorshSerialize for VecDeque<T>
where T: BorshSerialize,

source§

impl<T> BorshSerialize for Vec<T>
where T: BorshSerialize,

source§

impl<T, H> BorshSerialize for HashSet<T, H>