1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
use crate::schema::{Declaration, Definition}; use crate::{BorshDeserialize, BorshSchema, BorshSerialize}; use solana_program::pubkey::Pubkey; use std::collections::HashMap; use std::io::Write; impl BorshSerialize for Pubkey { fn serialize<W: Write>(&self, writer: &mut W) -> std::io::Result<()> { self.to_bytes().serialize(writer) } } impl BorshDeserialize for Pubkey { fn deserialize(buf: &mut &[u8]) -> std::io::Result<Self> { let arr = BorshDeserialize::deserialize(buf)?; Ok(Pubkey::new_from_array(arr)) } } impl BorshSchema for Pubkey { fn add_definitions_recursively(_definitions: &mut HashMap<Declaration, Definition>) {} fn declaration() -> Declaration { "pubkey".to_string() } }