Skip to main content

AnchorSerialize

Trait AnchorSerialize 

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

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

use borsh::BorshSerialize;

/// derive is only available if borsh is built with `features = ["derive"]`
#[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,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl BorshSerialize for ()

Source§

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

Source§

impl BorshSerialize for IpAddr

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 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 RangeFull

Source§

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

Source§

impl BorshSerialize for SocketAddr

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 String

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 usize

Source§

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

Source§

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

Source§

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

Source§

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

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<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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> BorshSerialize for (T0, T1, T2, T3)

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> BorshSerialize for (T0, T1)

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<T, E> BorshSerialize for Result<T, E>

Source§

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

Source§

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

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,

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 BTreeSet<T>
where T: BorshSerialize,

Source§

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

Source§

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

Source§

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

Source§

impl<T> BorshSerialize for Cell<T>
where T: BorshSerialize + Copy,

Source§

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

Source§

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

Source§

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

Source§

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

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 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> BorshSerialize for RangeFrom<T>
where T: BorshSerialize,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<T> BorshSerialize for VecDeque<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,

Source§

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

Implementors§

Source§

impl BorshSerialize for Address

Source§

impl BorshSerialize for BorshSchemaContainer

Source§

impl BorshSerialize for CompressedAccount

Source§

impl BorshSerialize for CompressedAccountData

Source§

impl BorshSerialize for CompressedAccountInfo

Source§

impl BorshSerialize for CompressedAccountMeta

Source§

impl BorshSerialize for CompressedAccountMetaInitIfNeeded

Source§

impl BorshSerialize for CompressedAccountMetaNoAddress

Source§

impl BorshSerialize for CompressedAccountMetaNoLamportsNoAddress

Source§

impl BorshSerialize for CompressedAccountMetaReadOnly

Source§

impl BorshSerialize for CompressedAccountMetaWithLamports

Source§

impl BorshSerialize for CompressedAccountWithMerkleContext

Source§

impl BorshSerialize for CompressedCpiContext

Source§

impl BorshSerialize for CompressedProof

Source§

impl BorshSerialize for Definition

Source§

impl BorshSerialize for Fields

Source§

impl BorshSerialize for InAccount

Source§

impl BorshSerialize for InAccountInfo

Source§

impl BorshSerialize for InCompressedAccount

Source§

impl BorshSerialize for InCompressedAccountWithMerkleContext

Source§

impl BorshSerialize for InstructionDataInvoke

Source§

impl BorshSerialize for InstructionDataInvokeCpi

Source§

impl BorshSerialize for InstructionDataInvokeCpiWithAccountInfo

Source§

impl BorshSerialize for InstructionDataInvokeCpiWithReadOnly

Source§

impl BorshSerialize for MerkleContext

Source§

impl BorshSerialize for NewAddressParams

Source§

impl BorshSerialize for NewAddressParamsAssigned

Source§

impl BorshSerialize for NewAddressParamsAssignedPacked

Source§

impl BorshSerialize for NewAddressParamsPacked

Source§

impl BorshSerialize for OutAccountInfo

Source§

impl BorshSerialize for OutputCompressedAccountWithContext

Source§

impl BorshSerialize for OutputCompressedAccountWithPackedContext

Source§

impl BorshSerialize for PackedAddressTreeInfo

Source§

impl BorshSerialize for PackedCompressedAccountWithMerkleContext

Source§

impl BorshSerialize for PackedInCompressedAccountWithMerkleContext

Source§

impl BorshSerialize for PackedMerkleContext

Source§

impl BorshSerialize for PackedReadOnlyAddress

Source§

impl BorshSerialize for PackedReadOnlyCompressedAccount

Source§

impl BorshSerialize for PackedStateTreeInfo

Source§

impl BorshSerialize for QueueType

Source§

impl BorshSerialize for ReadOnlyAddress

Source§

impl BorshSerialize for ReadOnlyCompressedAccount

Source§

impl BorshSerialize for RentSponsor

Source§

impl BorshSerialize for TreeType

Source§

impl BorshSerialize for ValidityProof

Source§

impl BorshSerialize for ZeroCopyPubkey

Source§

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