typhoon_utility/bytes/
mod.rs1mod writer;
2
3pub use writer::*;
4use {
5 core::mem::MaybeUninit,
6 pinocchio::{cpi::Seed, instruction::InstructionAccount, AccountView},
7};
8
9pub const UNINIT_BYTE: MaybeUninit<u8> = MaybeUninit::<u8>::uninit();
10pub const UNINIT_SEED: MaybeUninit<Seed> = MaybeUninit::<Seed>::uninit();
11pub const UNINIT_INS_ACC: MaybeUninit<InstructionAccount> =
12 MaybeUninit::<InstructionAccount>::uninit();
13pub const UNINIT_ACC_VIEW: MaybeUninit<&AccountView> = MaybeUninit::<&AccountView>::uninit();
14
15#[inline(always)]
16pub fn write_bytes(destination: &mut [MaybeUninit<u8>], source: &[u8]) {
17 let len = destination.len().min(source.len());
18 unsafe {
19 core::ptr::copy_nonoverlapping(source.as_ptr(), destination.as_mut_ptr() as *mut u8, len);
20 }
21}