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§
Provided Methods§
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 ()
impl BorshSerialize for ()
Source§impl BorshSerialize for AppendLeaves
impl BorshSerialize for AppendLeaves
Source§impl BorshSerialize for Authorized
impl BorshSerialize for Authorized
Source§impl BorshSerialize for ChangelogEventwhere
[u8; 32]: BorshSerialize,
Vec<Vec<PathNode>>: BorshSerialize,
u64: BorshSerialize,
u32: BorshSerialize,
impl BorshSerialize for ChangelogEventwhere
[u8; 32]: BorshSerialize,
Vec<Vec<PathNode>>: BorshSerialize,
u64: BorshSerialize,
u32: BorshSerialize,
Source§impl BorshSerialize for CompressedProof
impl BorshSerialize for CompressedProof
Source§impl BorshSerialize for Delegation
impl BorshSerialize for Delegation
Source§impl BorshSerialize for DeregisterProgram
impl BorshSerialize for DeregisterProgram
Source§impl BorshSerialize for DeregisterProgramwhere
Pubkey: BorshSerialize,
impl BorshSerialize for DeregisterProgramwhere
Pubkey: BorshSerialize,
Source§impl BorshSerialize for GroupAuthoritywhere
Pubkey: BorshSerialize,
impl BorshSerialize for GroupAuthoritywhere
Pubkey: BorshSerialize,
Source§impl BorshSerialize for IndexedMerkleTreeEventwhere
[u8; 32]: BorshSerialize,
Vec<IndexedMerkleTreeUpdate<usize>>: BorshSerialize,
u64: BorshSerialize,
impl BorshSerialize for IndexedMerkleTreeEventwhere
[u8; 32]: BorshSerialize,
Vec<IndexedMerkleTreeUpdate<usize>>: BorshSerialize,
u64: BorshSerialize,
Source§impl BorshSerialize for InitializeGroupAuthoritywhere
Pubkey: BorshSerialize,
impl BorshSerialize for InitializeGroupAuthoritywhere
Pubkey: BorshSerialize,
Source§impl BorshSerialize for InitializeGroupAuthoritywhere
Pubkey: BorshSerialize,
impl BorshSerialize for InitializeGroupAuthoritywhere
Pubkey: BorshSerialize,
Source§impl BorshSerialize for InsertAddresses
impl BorshSerialize for InsertAddresses
Source§impl BorshSerialize for InsertIntoQueues
impl BorshSerialize for InsertIntoQueues
Source§impl BorshSerialize for Ipv4Addr
Available on crate feature std only.
impl BorshSerialize for Ipv4Addr
Available on crate feature
std only.Source§impl BorshSerialize for Ipv6Addr
Available on crate feature std only.
impl BorshSerialize for Ipv6Addr
Available on crate feature
std only.Source§impl BorshSerialize for Lockup
impl BorshSerialize for Lockup
Source§impl BorshSerialize for MerkleTreeEvent
impl BorshSerialize for MerkleTreeEvent
Source§impl BorshSerialize for MerkleTreeEvents
impl BorshSerialize for MerkleTreeEvents
Source§impl BorshSerialize for Meta
impl BorshSerialize for Meta
Source§impl BorshSerialize for NonZero<i8>
impl BorshSerialize for NonZero<i8>
Source§impl BorshSerialize for NonZero<i16>
impl BorshSerialize for NonZero<i16>
Source§impl BorshSerialize for NonZero<i32>
impl BorshSerialize for NonZero<i32>
Source§impl BorshSerialize for NonZero<i64>
impl BorshSerialize for NonZero<i64>
Source§impl BorshSerialize for NonZero<i128>
impl BorshSerialize for NonZero<i128>
Source§impl BorshSerialize for NonZero<u8>
impl BorshSerialize for NonZero<u8>
Source§impl BorshSerialize for NonZero<u16>
impl BorshSerialize for NonZero<u16>
Source§impl BorshSerialize for NonZero<u32>
impl BorshSerialize for NonZero<u32>
Source§impl BorshSerialize for NonZero<u64>
impl BorshSerialize for NonZero<u64>
Source§impl BorshSerialize for NonZero<u128>
impl BorshSerialize for NonZero<u128>
Source§impl BorshSerialize for NonZero<usize>
impl BorshSerialize for NonZero<usize>
Source§impl BorshSerialize for NullifierEvent
impl BorshSerialize for NullifierEvent
Source§impl BorshSerialize for NullifyLeaves
impl BorshSerialize for NullifyLeaves
Source§impl BorshSerialize for NullifyLeaves
impl BorshSerialize for NullifyLeaves
Source§impl BorshSerialize for PathNode
impl BorshSerialize for PathNode
Source§impl BorshSerialize for QueueType
impl BorshSerialize for QueueType
Source§impl BorshSerialize for RegisterProgramToGroupwhere
Pubkey: BorshSerialize,
impl BorshSerialize for RegisterProgramToGroupwhere
Pubkey: BorshSerialize,
Source§impl BorshSerialize for RegisteredProgramwhere
Pubkey: BorshSerialize,
impl BorshSerialize for RegisteredProgramwhere
Pubkey: BorshSerialize,
Source§impl BorshSerialize for SocketAddr
Available on crate feature std only.
impl BorshSerialize for SocketAddr
Available on crate feature
std only.Source§impl BorshSerialize for SocketAddrV4
Available on crate feature std only.
impl BorshSerialize for SocketAddrV4
Available on crate feature
std only.Source§impl BorshSerialize for SocketAddrV6
Available on crate feature std only.
impl BorshSerialize for SocketAddrV6
Available on crate feature
std only.