Trait anchor_lang::AnchorSerialize

source ·
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

Available on crate feature std only.
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 String

source§

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

source§

impl BorshSerialize for Ipv4Addr

Available on crate feature std only.
source§

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

source§

impl BorshSerialize for Ipv6Addr

Available on crate feature std only.
source§

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

source§

impl BorshSerialize for SocketAddrV4

Available on crate feature std only.
source§

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

source§

impl BorshSerialize for SocketAddrV6

Available on crate feature std only.
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 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<K, V> BorshSerialize for BTreeMap<K, V>

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<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 Cow<'_, T>

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 Box<T>
where T: BorshSerialize + ?Sized,

source§

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

source§

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

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 LinkedList<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 Vec<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, 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,

Implementors§