pub struct ChainsawDeserializer<'opts> { /* private fields */ }Expand description
Implementations§
Source§impl<'opts> ChainsawDeserializer<'opts>
impl<'opts> ChainsawDeserializer<'opts>
Sourcepub fn new(json_serialization_opts: &'opts JsonSerializationOpts) -> Self
pub fn new(json_serialization_opts: &'opts JsonSerializationOpts) -> Self
Creates an instance of a ChainsawDeserializer. Make sure to use ChainsawDeserializer::add_idl_json for each program before attempting to deserialize accounts for it.
- [serialization_opts] specifying how specific data types should be deserialized.
Sourcepub fn add_idl_json(
&mut self,
program_id: String,
idl_json: &str,
provider: IdlProvider,
) -> ChainsawResult<()>
pub fn add_idl_json( &mut self, program_id: String, idl_json: &str, provider: IdlProvider, ) -> ChainsawResult<()>
Parses an [IDL] specification from the provided [idl_json] for the [program_id] and adds a to the json/bson accounts deserializer derived from it.
pub fn account_name( &self, program_id: &str, discriminator: &DiscriminatorBytes, ) -> Option<&str>
Sourcepub fn has_idl(&self, program_id: &str) -> bool
pub fn has_idl(&self, program_id: &str) -> bool
Returns true if the IDL of the given [program_id] has been added to the deserializer.
Sourcepub fn added_idls(&self) -> HashSet<String>
pub fn added_idls(&self) -> HashSet<String>
Returns all program ids for which IDLs have been added to the deserializer.
Sourcepub fn deserialize_account_to_json_string(
&self,
program_id: &str,
account_data: &mut &[u8],
) -> ChainsawResult<String>
pub fn deserialize_account_to_json_string( &self, program_id: &str, account_data: &mut &[u8], ) -> ChainsawResult<String>
Deserializes an account to a JSON string.
In order to specify a custom Write writer, i.e. a socket connection to write to, use [deserialize_account] instead.
- [program_id] is the program id of progra that owns the account. make sure to add it’s IDL before via ChainsawDeserializer::add_idl_json.
- [account_data] is the raw account data as a byte array
Sourcepub fn deserialize_account_to_json<W: Write>(
&self,
program_id: &str,
account_data: &mut &[u8],
f: &mut W,
) -> ChainsawResult<()>
pub fn deserialize_account_to_json<W: Write>( &self, program_id: &str, account_data: &mut &[u8], f: &mut W, ) -> ChainsawResult<()>
Deserializes an account and writes the resulting JSON to the provided Write write [f].
- [program_id] is the program id of progra that owns the account. make sure to add it’s IDL before via ChainsawDeserializer::add_idl_json.
- [account_data] is the raw account data as a byte array
- [f] is the Write writer to write the resulting JSON to, i.e.
std::io::stdout()orString::new()
Auto Trait Implementations§
impl<'opts> Freeze for ChainsawDeserializer<'opts>
impl<'opts> RefUnwindSafe for ChainsawDeserializer<'opts>
impl<'opts> Send for ChainsawDeserializer<'opts>
impl<'opts> Sync for ChainsawDeserializer<'opts>
impl<'opts> Unpin for ChainsawDeserializer<'opts>
impl<'opts> UnwindSafe for ChainsawDeserializer<'opts>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more