Skip to main content

Streamable

Trait Streamable 

Source
pub trait Streamable {
    // Required methods
    fn update_digest(&self, digest: &mut Sha256);
    fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>;
    fn parse<const TRUSTED: bool>(
        input: &mut Cursor<&[u8]>,
    ) -> Result<Self, Error>
       where Self: Sized;

    // Provided methods
    fn to_bytes(&self) -> Result<Vec<u8>, Error> { ... }
    fn from_bytes(bytes: &[u8]) -> Result<Self, Error>
       where Self: Sized { ... }
    fn from_bytes_unchecked(bytes: &[u8]) -> Result<Self, Error>
       where Self: Sized { ... }
    fn hash(&self) -> [u8; 32] { ... }
}

Required Methods§

Source

fn update_digest(&self, digest: &mut Sha256)

Source

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<Self, Error>
where Self: Sized,

Provided Methods§

Source

fn to_bytes(&self) -> Result<Vec<u8>, Error>

Source

fn from_bytes(bytes: &[u8]) -> Result<Self, Error>
where Self: Sized,

Source

fn from_bytes_unchecked(bytes: &[u8]) -> Result<Self, Error>
where Self: Sized,

Source

fn hash(&self) -> [u8; 32]

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl Streamable for ()

Source§

fn update_digest(&self, _digest: &mut Sha256)

Source§

fn stream(&self, _out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>(_input: &mut Cursor<&[u8]>) -> Result<(), Error>

Source§

impl Streamable for ConsensusConstants

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>( input: &mut Cursor<&[u8]>, ) -> Result<ConsensusConstants, Error>

Source§

impl Streamable for GTElement

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>( input: &mut Cursor<&[u8]>, ) -> Result<GTElement, Error>

Source§

impl Streamable for OwnedSpendBundleConditions

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>( input: &mut Cursor<&[u8]>, ) -> Result<OwnedSpendBundleConditions, Error>

Source§

impl Streamable for OwnedSpendConditions

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>( input: &mut Cursor<&[u8]>, ) -> Result<OwnedSpendConditions, Error>

Source§

impl Streamable for PublicKey

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>( input: &mut Cursor<&[u8]>, ) -> Result<PublicKey, Error>

Source§

impl Streamable for SecretKey

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>( input: &mut Cursor<&[u8]>, ) -> Result<SecretKey, Error>

Source§

impl Streamable for Signature

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>( input: &mut Cursor<&[u8]>, ) -> Result<Signature, Error>

Source§

impl Streamable for String

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>( input: &mut Cursor<&[u8]>, ) -> Result<String, Error>

Source§

impl Streamable for bool

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<bool, Error>

Source§

impl Streamable for i8

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<i8, Error>

Source§

impl Streamable for i16

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<i16, Error>

Source§

impl Streamable for i32

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<i32, Error>

Source§

impl Streamable for i64

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<i64, Error>

Source§

impl Streamable for i128

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<i128, Error>

Source§

impl Streamable for u8

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<u8, Error>

Source§

impl Streamable for u16

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<u16, Error>

Source§

impl Streamable for u32

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<u32, Error>

Source§

impl Streamable for u64

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<u64, Error>

Source§

impl Streamable for u128

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>(input: &mut Cursor<&[u8]>) -> Result<u128, Error>

Source§

impl<T, U, V, W> Streamable for (T, U, V, W)

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>( input: &mut Cursor<&[u8]>, ) -> Result<(T, U, V, W), Error>

Source§

impl<T, U, V> Streamable for (T, U, V)
where T: Streamable, U: Streamable, V: Streamable,

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>( input: &mut Cursor<&[u8]>, ) -> Result<(T, U, V), Error>

Source§

impl<T, U> Streamable for (T, U)
where T: Streamable, U: Streamable,

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>( input: &mut Cursor<&[u8]>, ) -> Result<(T, U), Error>

Source§

impl<T> Streamable for Option<T>
where T: Streamable,

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>( input: &mut Cursor<&[u8]>, ) -> Result<Option<T>, Error>

Source§

impl<T> Streamable for Vec<T>
where T: Streamable,

Source§

fn update_digest(&self, digest: &mut Sha256)

Source§

fn stream(&self, out: &mut Vec<u8>) -> Result<(), Error>

Source§

fn parse<const TRUSTED: bool>( input: &mut Cursor<&[u8]>, ) -> Result<Vec<T>, Error>

Implementors§

Source§

impl Streamable for BlockRecord

Source§

impl Streamable for Bytes

Source§

impl Streamable for ChallengeBlockInfo

Source§

impl Streamable for ChallengeChainSubSlot

Source§

impl Streamable for ClassgroupElement

Source§

impl Streamable for Coin

Source§

impl Streamable for CoinSpend

Source§

impl Streamable for CoinState

Source§

impl Streamable for CoinStateFilters

Source§

impl Streamable for CoinStateUpdate

Source§

impl Streamable for EndOfSubSlotBundle

Source§

impl Streamable for FeeEstimate

Source§

impl Streamable for FeeEstimateGroup

Source§

impl Streamable for FeeRate

Source§

impl Streamable for Foliage

Source§

impl Streamable for FoliageBlockData

Source§

impl Streamable for FoliageTransactionBlock

Source§

impl Streamable for FullBlock

Source§

impl Streamable for Handshake

Source§

impl Streamable for HeaderBlock

Source§

impl Streamable for InfusedChallengeChainSubSlot

Source§

impl Streamable for MempoolItemsAdded

Source§

impl Streamable for MempoolItemsRemoved

Source§

impl Streamable for MempoolRemoveReason

Source§

impl Streamable for Message

Source§

impl Streamable for NewCompactVDF

Source§

impl Streamable for NewPeak

Source§

impl Streamable for NewPeakWallet

Source§

impl Streamable for NewSignagePointOrEndOfSubSlot

Source§

impl Streamable for NewTransaction

Source§

impl Streamable for NewUnfinishedBlock

Source§

impl Streamable for NewUnfinishedBlock2

Source§

impl Streamable for NodeType

Source§

impl Streamable for PoolTarget

Source§

impl Streamable for Program

Source§

impl Streamable for ProofBlockHeader

Source§

impl Streamable for ProofOfSpace

Source§

impl Streamable for ProtocolMessageTypes

Source§

impl Streamable for PuzzleSolutionResponse

Source§

impl Streamable for RecentChainData

Source§

impl Streamable for RegisterAck

Source§

impl Streamable for RegisterForCoinUpdates

Source§

impl Streamable for RegisterForPhUpdates

Source§

impl Streamable for RegisterPeer

Source§

impl Streamable for RejectAdditionsRequest

Source§

impl Streamable for RejectBlock

Source§

impl Streamable for RejectBlockHeaders

Source§

impl Streamable for RejectBlocks

Source§

impl Streamable for RejectCoinState

Source§

impl Streamable for RejectHeaderBlocks

Source§

impl Streamable for RejectHeaderRequest

Source§

impl Streamable for RejectPuzzleSolution

Source§

impl Streamable for RejectPuzzleState

Source§

impl Streamable for RejectRemovalsRequest

Source§

impl Streamable for RejectStateReason

Source§

impl Streamable for RemovedMempoolItem

Source§

impl Streamable for RequestAdditions

Source§

impl Streamable for RequestBlock

Source§

impl Streamable for RequestBlockHeader

Source§

impl Streamable for RequestBlockHeaders

Source§

impl Streamable for RequestBlocks

Source§

impl Streamable for RequestChildren

Source§

impl Streamable for RequestCoinState

Source§

impl Streamable for RequestCompactVDF

Source§

impl Streamable for RequestCostInfo

Source§

impl Streamable for RequestFeeEstimates

Source§

impl Streamable for RequestHeaderBlocks

Source§

impl Streamable for RequestMempoolTransactions

Source§

impl Streamable for RequestPeers

Source§

impl Streamable for RequestPeersIntroducer

Source§

impl Streamable for RequestProofOfWeight

Source§

impl Streamable for RequestPuzzleSolution

Source§

impl Streamable for RequestPuzzleState

Source§

impl Streamable for RequestRemovals

Source§

impl Streamable for RequestRemoveCoinSubscriptions

Source§

impl Streamable for RequestRemovePuzzleSubscriptions

Source§

impl Streamable for RequestSesInfo

Source§

impl Streamable for RequestSignagePointOrEndOfSubSlot

Source§

impl Streamable for RequestTransaction

Source§

impl Streamable for RequestUnfinishedBlock

Source§

impl Streamable for RequestUnfinishedBlock2

Source§

impl Streamable for RespondAdditions

Source§

impl Streamable for RespondBlock

Source§

impl Streamable for RespondBlockHeader

Source§

impl Streamable for RespondBlockHeaders

Source§

impl Streamable for RespondBlocks

Source§

impl Streamable for RespondChildren

Source§

impl Streamable for RespondCoinState

Source§

impl Streamable for RespondCompactVDF

Source§

impl Streamable for RespondCostInfo

Source§

impl Streamable for RespondEndOfSubSlot

Source§

impl Streamable for RespondFeeEstimates

Source§

impl Streamable for RespondHeaderBlocks

Source§

impl Streamable for RespondPeers

Source§

impl Streamable for RespondPeersIntroducer

Source§

impl Streamable for RespondProofOfWeight

Source§

impl Streamable for RespondPuzzleSolution

Source§

impl Streamable for RespondPuzzleState

Source§

impl Streamable for RespondRemovals

Source§

impl Streamable for RespondRemoveCoinSubscriptions

Source§

impl Streamable for RespondRemovePuzzleSubscriptions

Source§

impl Streamable for RespondSesInfo

Source§

impl Streamable for RespondSignagePoint

Source§

impl Streamable for RespondToCoinUpdates

Source§

impl Streamable for RespondToPhUpdates

Source§

impl Streamable for RespondTransaction

Source§

impl Streamable for RespondUnfinishedBlock

Source§

impl Streamable for RewardChainBlock

Source§

impl Streamable for RewardChainBlockUnfinished

Source§

impl Streamable for RewardChainSubSlot

Source§

impl Streamable for SendTransaction

Source§

impl Streamable for SpendBundle

Source§

impl Streamable for SubEpochChallengeSegment

Source§

impl Streamable for SubEpochData

Source§

impl Streamable for SubEpochSegments

Source§

impl Streamable for SubEpochSummary

Source§

impl Streamable for SubSlotData

Source§

impl Streamable for SubSlotProofs

Source§

impl Streamable for TimestampedPeerInfo

Source§

impl Streamable for TransactionAck

Source§

impl Streamable for TransactionsInfo

Source§

impl Streamable for UnfinishedBlock

Source§

impl Streamable for UnfinishedHeaderBlock

Source§

impl Streamable for VDFInfo

Source§

impl Streamable for VDFProof

Source§

impl Streamable for WeightProof

Source§

impl<const N: usize> Streamable for BytesImpl<N>