solana_block_decoder/
decodable.rs

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