sol-chainsaw 0.0.2

Deserializing Solana accounts using their progam IDL
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use bson::{RawBson, RawDocumentBuf};

use crate::ChainsawResult;

use super::bson_idl_field_de::BsonIdlFieldDeserializer;

pub fn deserialize_fields_to_object<'opts>(
    buf: &mut &[u8],
    fields: &[BsonIdlFieldDeserializer<'opts>],
) -> ChainsawResult<RawBson> {
    let mut doc = RawDocumentBuf::new();
    for field_de in fields.iter() {
        field_de.deserialize(&mut doc, buf)?;
    }
    Ok(RawBson::Document(doc))
}