solana_block_decoder/
decodable.rs

1
2use {
3    crate::{
4        errors::{
5            decode_error::DecodeError,
6        }
7    },
8    solana_sdk::{
9        transaction::{
10            TransactionVersion,
11        },
12    },
13    solana_transaction_status::{
14        UiTransactionEncoding,
15    },
16};
17
18pub trait Decodable {
19    type Encoded;
20    type Decoded;
21    fn decode(encoded: &Self::Encoded) -> Result<Self::Decoded, DecodeError>;
22}
23
24pub trait DecodableWithMeta {
25    type Encoded;
26    type Decoded;
27    fn decode_with_meta(
28        encoded: Self::Encoded,
29        encoding: UiTransactionEncoding,
30        version: Option<TransactionVersion>
31    ) -> Result<Self::Decoded, DecodeError>;
32    fn json_decode(encoded: Self::Encoded, version: Option<TransactionVersion>) -> Result<Self::Decoded, DecodeError>;
33}