AnchorSerialize

Trait 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.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so 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 StakeState

Source§

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

Source§

impl BorshSerialize for ComputeBudgetInstruction

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 Hash

Source§

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

Source§

impl BorshSerialize for Hash

Source§

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

Source§

impl BorshSerialize for Hash

Source§

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

Source§

impl BorshSerialize for Secp256k1Pubkey

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

Source§

impl BorshSerialize for Recurrence

Source§

impl BorshSerialize for Status

Source§

impl BorshSerialize for Weekday

Source§

impl BorshSerialize for Definition

Source§

impl BorshSerialize for Fields

Source§

impl BorshSerialize for triggr::accounts::AddMiddleware

Source§

impl BorshSerialize for triggr::accounts::CloseAccount

Source§

impl BorshSerialize for triggr::accounts::CloseProgram

Source§

impl BorshSerialize for triggr::accounts::CloseTask

Source§

impl BorshSerialize for triggr::accounts::CloseTrigger

Source§

impl BorshSerialize for triggr::accounts::CloseUser

Source§

impl BorshSerialize for triggr::accounts::CreateLut

Source§

impl BorshSerialize for triggr::accounts::CreateTask

Source§

impl BorshSerialize for triggr::accounts::CreateTrigger

Source§

impl BorshSerialize for triggr::accounts::CreateUser

Source§

impl BorshSerialize for triggr::accounts::ExecTask

Source§

impl BorshSerialize for triggr::accounts::InitializeProgram

Source§

impl BorshSerialize for triggr::accounts::PopulateInstruction

Source§

impl BorshSerialize for triggr::accounts::UpdateMiddleware

Source§

impl BorshSerialize for triggr::accounts::UpdateTask

Source§

impl BorshSerialize for triggr::accounts::UpdateTrigger

Source§

impl BorshSerialize for triggr::accounts::WithdrawFromPayer

Source§

impl BorshSerialize for WithdrawFromPayerSPL

Source§

impl BorshSerialize for triggr::instruction::AddMiddleware

Source§

impl BorshSerialize for triggr::instruction::CloseAccount

Source§

impl BorshSerialize for triggr::instruction::CloseProgram

Source§

impl BorshSerialize for triggr::instruction::CloseTask

Source§

impl BorshSerialize for triggr::instruction::CloseTrigger

Source§

impl BorshSerialize for triggr::instruction::CloseUser

Source§

impl BorshSerialize for triggr::instruction::CreateLut

Source§

impl BorshSerialize for triggr::instruction::CreateTask

Source§

impl BorshSerialize for triggr::instruction::CreateTrigger

Source§

impl BorshSerialize for triggr::instruction::CreateUser

Source§

impl BorshSerialize for triggr::instruction::ExecTask

Source§

impl BorshSerialize for triggr::instruction::InitializeProgram

Source§

impl BorshSerialize for triggr::instruction::PopulateInstruction

Source§

impl BorshSerialize for triggr::instruction::UpdateMiddleware

Source§

impl BorshSerialize for triggr::instruction::UpdateTask

Source§

impl BorshSerialize for triggr::instruction::UpdateTrigger

Source§

impl BorshSerialize for triggr::instruction::WithdrawFromPayer

Source§

impl BorshSerialize for WithdrawFromPayerSpl

Source§

impl BorshSerialize for Args

Source§

impl BorshSerialize for BufferPart

Source§

impl BorshSerialize for InstructionBundle

Source§

impl BorshSerialize for Middleware

Source§

impl BorshSerialize for triggr::state::ProgramState

Source§

impl BorshSerialize for SerializableAccount

Source§

impl BorshSerialize for SerializableInstruction

Source§

impl BorshSerialize for Statistics

Source§

impl BorshSerialize for Task

Source§

impl BorshSerialize for TempInstructions

Source§

impl BorshSerialize for TempStore

Source§

impl BorshSerialize for User

Source§

impl BorshSerialize for AdjacencyTree

Source§

impl BorshSerialize for AdjacencyTreeNode

Source§

impl BorshSerialize for Condition

Source§

impl BorshSerialize for Lifetime

Source§

impl BorshSerialize for Trigger

Source§

impl BorshSerialize for String

Source§

impl BorshSerialize for BorshSchemaContainer

Source§

impl BorshSerialize for Pubkey

Source§

impl BorshSerialize for triggr::instructions::close_program::ProgramState

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>