Trait borsh::ser::BorshSerialize

source ·
pub trait BorshSerialize {
    // Required method
    fn serialize<W: Write>(&self, writer: &mut W) -> Result<()>;
}
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: Write>(&self, writer: &mut W) -> Result<()>

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl BorshSerialize for SocketAddr

source§

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

source§

impl BorshSerialize for bool

source§

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

source§

impl BorshSerialize for f32

source§

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

source§

impl BorshSerialize for f64

source§

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

source§

impl BorshSerialize for i8

source§

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

source§

impl BorshSerialize for i16

source§

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

source§

impl BorshSerialize for i32

source§

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

source§

impl BorshSerialize for i64

source§

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

source§

impl BorshSerialize for i128

source§

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

source§

impl BorshSerialize for isize

source§

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

source§

impl BorshSerialize for str

source§

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

source§

impl BorshSerialize for u8

source§

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

source§

impl BorshSerialize for u16

source§

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

source§

impl BorshSerialize for u32

source§

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

source§

impl BorshSerialize for u64

source§

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

source§

impl BorshSerialize for u128

source§

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

source§

impl BorshSerialize for ()

source§

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

source§

impl BorshSerialize for usize

source§

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

source§

impl BorshSerialize for String

source§

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

source§

impl BorshSerialize for Ipv4Addr

source§

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

source§

impl BorshSerialize for Ipv6Addr

source§

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

source§

impl BorshSerialize for SocketAddrV4

source§

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

source§

impl BorshSerialize for SocketAddrV6

source§

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

source§

impl BorshSerialize for NonZeroI8

source§

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

source§

impl BorshSerialize for NonZeroI16

source§

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

source§

impl BorshSerialize for NonZeroI32

source§

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

source§

impl BorshSerialize for NonZeroI64

source§

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

source§

impl BorshSerialize for NonZeroI128

source§

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

source§

impl BorshSerialize for NonZeroU8

source§

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

source§

impl BorshSerialize for NonZeroU16

source§

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

source§

impl BorshSerialize for NonZeroU32

source§

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

source§

impl BorshSerialize for NonZeroU64

source§

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

source§

impl BorshSerialize for NonZeroU128

source§

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

source§

impl BorshSerialize for NonZeroUsize

source§

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

source§

impl BorshSerialize for RangeFull

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

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: Write>(&self, writer: &mut W) -> Result<()>

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: Write>(&self, writer: &mut W) -> Result<()>

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: Write>(&self, writer: &mut W) -> Result<()>

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: Write>(&self, writer: &mut W) -> Result<()>

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: Write>(&self, writer: &mut W) -> Result<()>

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: Write>(&self, writer: &mut W) -> Result<()>

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: Write>(&self, writer: &mut W) -> Result<()>

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: Write>(&self, writer: &mut W) -> Result<()>

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: Write>(&self, writer: &mut W) -> Result<()>

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: Write>(&self, writer: &mut W) -> Result<()>

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: Write>(&self, writer: &mut W) -> Result<()>

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: Write>(&self, writer: &mut W) -> Result<()>

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

impl<T: BorshSerialize + ?Sized> BorshSerialize for Rc<T>

This impl requires the ["rc"] Cargo feature of borsh.

Serializing a data structure containing Rc will serialize a copy of the contents of the Rc each time the Rc is referenced within the data structure. Serialization will not attempt to deduplicate these repeated data.

source§

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

source§

impl<T: BorshSerialize + ?Sized> BorshSerialize for Arc<T>

This impl requires the ["rc"] Cargo feature of borsh.

Serializing a data structure containing Arc will serialize a copy of the contents of the Arc each time the Arc is referenced within the data structure. Serialization will not attempt to deduplicate these repeated data.

source§

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

source§

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

source§

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

source§

impl<T: BorshSerialize> BorshSerialize for RangeFrom<T>

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

Implementors§