pub struct SeqTypes;
Trait Implementations§
Source§impl BlockHeader<SeqTypes> for Header
impl BlockHeader<SeqTypes> for Header
Source§fn get_auction_results(&self) -> Option<SolverAuctionResults>
fn get_auction_results(&self) -> Option<SolverAuctionResults>
Get the results of the auction for this Header. Only used in post-marketplace versions
Source§async fn new_marketplace(
parent_state: &<SeqTypes as NodeType>::ValidatedState,
instance_state: &<<SeqTypes as NodeType>::ValidatedState as ValidatedState<SeqTypes>>::Instance,
parent_leaf: &Leaf2<SeqTypes>,
payload_commitment: VidCommitment,
builder_commitment: BuilderCommitment,
metadata: <<SeqTypes as NodeType>::BlockPayload as BlockPayload<SeqTypes>>::Metadata,
builder_fee: Vec<BuilderFee<SeqTypes>>,
view_number: u64,
auction_results: Option<SolverAuctionResults>,
version: Version,
) -> Result<Self, Self::Error>
async fn new_marketplace( parent_state: &<SeqTypes as NodeType>::ValidatedState, instance_state: &<<SeqTypes as NodeType>::ValidatedState as ValidatedState<SeqTypes>>::Instance, parent_leaf: &Leaf2<SeqTypes>, payload_commitment: VidCommitment, builder_commitment: BuilderCommitment, metadata: <<SeqTypes as NodeType>::BlockPayload as BlockPayload<SeqTypes>>::Metadata, builder_fee: Vec<BuilderFee<SeqTypes>>, view_number: u64, auction_results: Option<SolverAuctionResults>, version: Version, ) -> Result<Self, Self::Error>
Build a header with the parent validate state, instance-level state, parent leaf, payload commitment, metadata, and auction results. This is only used in post-marketplace versions
Source§fn builder_commitment(&self) -> BuilderCommitment
fn builder_commitment(&self) -> BuilderCommitment
Commit over fee_amount, payload_commitment and metadata
Source§type Error = InvalidBlockHeader
type Error = InvalidBlockHeader
Source§async fn new_legacy(
parent_state: &ValidatedState,
instance_state: &NodeState,
parent_leaf: &Leaf2,
payload_commitment: VidCommitment,
builder_commitment: BuilderCommitment,
metadata: <<SeqTypes as NodeType>::BlockPayload as BlockPayload<SeqTypes>>::Metadata,
builder_fee: BuilderFee<SeqTypes>,
version: Version,
view_number: u64,
) -> Result<Self, Self::Error>
async fn new_legacy( parent_state: &ValidatedState, instance_state: &NodeState, parent_leaf: &Leaf2, payload_commitment: VidCommitment, builder_commitment: BuilderCommitment, metadata: <<SeqTypes as NodeType>::BlockPayload as BlockPayload<SeqTypes>>::Metadata, builder_fee: BuilderFee<SeqTypes>, version: Version, view_number: u64, ) -> Result<Self, Self::Error>
Source§fn genesis(
instance_state: &NodeState,
payload_commitment: VidCommitment,
builder_commitment: BuilderCommitment,
ns_table: <<SeqTypes as NodeType>::BlockPayload as BlockPayload<SeqTypes>>::Metadata,
) -> Self
fn genesis( instance_state: &NodeState, payload_commitment: VidCommitment, builder_commitment: BuilderCommitment, ns_table: <<SeqTypes as NodeType>::BlockPayload as BlockPayload<SeqTypes>>::Metadata, ) -> Self
Source§fn block_number(&self) -> u64
fn block_number(&self) -> u64
Source§fn payload_commitment(&self) -> VidCommitment
fn payload_commitment(&self) -> VidCommitment
Source§fn metadata(
&self,
) -> &<<SeqTypes as NodeType>::BlockPayload as BlockPayload<SeqTypes>>::Metadata
fn metadata( &self, ) -> &<<SeqTypes as NodeType>::BlockPayload as BlockPayload<SeqTypes>>::Metadata
Source§fn get_light_client_state(
&self,
view: <SeqTypes as NodeType>::View,
) -> Result<LightClientState>
fn get_light_client_state( &self, view: <SeqTypes as NodeType>::View, ) -> Result<LightClientState>
Source§impl BlockPayload<SeqTypes> for Payload
impl BlockPayload<SeqTypes> for Payload
Source§type Error = BlockBuildingError
type Error = BlockBuildingError
Source§type Transaction = Transaction
type Transaction = Transaction
Source§type ValidatedState = ValidatedState
type ValidatedState = ValidatedState
Source§fn from_transactions<'life0, 'life1, 'async_trait>(
transactions: impl 'async_trait + IntoIterator<Item = Self::Transaction> + Send,
validated_state: &'life0 Self::ValidatedState,
instance_state: &'life1 Self::Instance,
) -> Pin<Box<dyn Future<Output = Result<(Self, Self::Metadata), Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn from_transactions<'life0, 'life1, 'async_trait>(
transactions: impl 'async_trait + IntoIterator<Item = Self::Transaction> + Send,
validated_state: &'life0 Self::ValidatedState,
instance_state: &'life1 Self::Instance,
) -> Pin<Box<dyn Future<Output = Result<(Self, Self::Metadata), Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn from_bytes(block_payload_bytes: &[u8], ns_table: &Self::Metadata) -> Self
fn from_bytes(block_payload_bytes: &[u8], ns_table: &Self::Metadata) -> Self
Source§fn builder_commitment(&self, metadata: &Self::Metadata) -> BuilderCommitment
fn builder_commitment(&self, metadata: &Self::Metadata) -> BuilderCommitment
Source§fn transactions<'a>(
&'a self,
metadata: &'a Self::Metadata,
) -> impl 'a + Iterator<Item = Self::Transaction>
fn transactions<'a>( &'a self, metadata: &'a Self::Metadata, ) -> impl 'a + Iterator<Item = Self::Transaction>
Source§fn transaction_commitments(
&self,
metadata: &Self::Metadata,
) -> Vec<Commitment<Self::Transaction>>
fn transaction_commitments( &self, metadata: &Self::Metadata, ) -> Vec<Commitment<Self::Transaction>>
Source§fn num_transactions(&self, metadata: &Self::Metadata) -> usize
fn num_transactions(&self, metadata: &Self::Metadata) -> usize
Source§impl<'de> Deserialize<'de> for SeqTypes
impl<'de> Deserialize<'de> for SeqTypes
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl ExplorerHeader<SeqTypes> for Header
impl ExplorerHeader<SeqTypes> for Header
Source§fn reward_balance(&self) -> Self::BalanceAmount
fn reward_balance(&self) -> Self::BalanceAmount
reward_balance at the moment is only implemented as a stub, as block rewards have not yet been implemented.
TODO: update implementation when rewards have been created / supported. Issue: https://github.com/EspressoSystems/espresso-sequencer/issues/1453
Source§type BalanceAmount = FeeAmount
type BalanceAmount = FeeAmount
Source§type WalletAddress = Vec<FeeAccount>
type WalletAddress = Vec<FeeAccount>
Source§type ProposerId = Vec<FeeAccount>
type ProposerId = Vec<FeeAccount>
Source§type NamespaceId = NamespaceId
type NamespaceId = NamespaceId
Source§fn proposer_id(&self) -> Self::ProposerId
fn proposer_id(&self) -> Self::ProposerId
Source§fn fee_info_account(&self) -> Self::WalletAddress
fn fee_info_account(&self) -> Self::WalletAddress
Source§fn fee_info_balance(&self) -> Self::BalanceAmount
fn fee_info_balance(&self) -> Self::BalanceAmount
Source§fn namespace_ids(&self) -> Vec<Self::NamespaceId>
fn namespace_ids(&self) -> Vec<Self::NamespaceId>
Source§impl Membership<SeqTypes> for EpochCommittees
impl Membership<SeqTypes> for EpochCommittees
Source§fn stake_table(
&self,
epoch: Option<<SeqTypes as NodeType>::Epoch>,
) -> HSStakeTable<SeqTypes>
fn stake_table( &self, epoch: Option<<SeqTypes as NodeType>::Epoch>, ) -> HSStakeTable<SeqTypes>
Get the stake table for the current view
Source§fn da_stake_table(
&self,
_epoch: Option<<SeqTypes as NodeType>::Epoch>,
) -> HSStakeTable<SeqTypes>
fn da_stake_table( &self, _epoch: Option<<SeqTypes as NodeType>::Epoch>, ) -> HSStakeTable<SeqTypes>
Get the stake table for the current view
Source§fn committee_members(
&self,
_view_number: <SeqTypes as NodeType>::View,
epoch: Option<<SeqTypes as NodeType>::Epoch>,
) -> BTreeSet<PubKey>
fn committee_members( &self, _view_number: <SeqTypes as NodeType>::View, epoch: Option<<SeqTypes as NodeType>::Epoch>, ) -> BTreeSet<PubKey>
Get all members of the committee for the current view
Source§fn da_committee_members(
&self,
_view_number: <SeqTypes as NodeType>::View,
_epoch: Option<<SeqTypes as NodeType>::Epoch>,
) -> BTreeSet<PubKey>
fn da_committee_members( &self, _view_number: <SeqTypes as NodeType>::View, _epoch: Option<<SeqTypes as NodeType>::Epoch>, ) -> BTreeSet<PubKey>
Get all members of the committee for the current view
Source§fn stake(
&self,
pub_key: &PubKey,
epoch: Option<<SeqTypes as NodeType>::Epoch>,
) -> Option<PeerConfig<SeqTypes>>
fn stake( &self, pub_key: &PubKey, epoch: Option<<SeqTypes as NodeType>::Epoch>, ) -> Option<PeerConfig<SeqTypes>>
Get the stake table entry for a public key
Source§fn da_stake(
&self,
pub_key: &PubKey,
_epoch: Option<<SeqTypes as NodeType>::Epoch>,
) -> Option<PeerConfig<SeqTypes>>
fn da_stake( &self, pub_key: &PubKey, _epoch: Option<<SeqTypes as NodeType>::Epoch>, ) -> Option<PeerConfig<SeqTypes>>
Get the DA stake table entry for a public key
Source§fn has_stake(
&self,
pub_key: &PubKey,
epoch: Option<<SeqTypes as NodeType>::Epoch>,
) -> bool
fn has_stake( &self, pub_key: &PubKey, epoch: Option<<SeqTypes as NodeType>::Epoch>, ) -> bool
Check if a node has stake in the committee
Source§fn has_da_stake(
&self,
pub_key: &PubKey,
epoch: Option<<SeqTypes as NodeType>::Epoch>,
) -> bool
fn has_da_stake( &self, pub_key: &PubKey, epoch: Option<<SeqTypes as NodeType>::Epoch>, ) -> bool
Check if a node has stake in the committee
Source§fn lookup_leader(
&self,
view_number: <SeqTypes as NodeType>::View,
epoch: Option<<SeqTypes as NodeType>::Epoch>,
) -> Result<PubKey, Self::Error>
fn lookup_leader( &self, view_number: <SeqTypes as NodeType>::View, epoch: Option<<SeqTypes as NodeType>::Epoch>, ) -> Result<PubKey, Self::Error>
Index the vector of public keys with the current view number
Source§fn total_nodes(&self, epoch: Option<<SeqTypes as NodeType>::Epoch>) -> usize
fn total_nodes(&self, epoch: Option<<SeqTypes as NodeType>::Epoch>) -> usize
Get the total number of nodes in the committee
Source§fn da_total_nodes(&self, epoch: Option<<SeqTypes as NodeType>::Epoch>) -> usize
fn da_total_nodes(&self, epoch: Option<<SeqTypes as NodeType>::Epoch>) -> usize
Get the total number of DA nodes in the committee
Source§fn success_threshold(
&self,
epoch: Option<<SeqTypes as NodeType>::Epoch>,
) -> U256
fn success_threshold( &self, epoch: Option<<SeqTypes as NodeType>::Epoch>, ) -> U256
Get the voting success threshold for the committee
Source§fn da_success_threshold(
&self,
epoch: Option<<SeqTypes as NodeType>::Epoch>,
) -> U256
fn da_success_threshold( &self, epoch: Option<<SeqTypes as NodeType>::Epoch>, ) -> U256
Get the voting success threshold for the committee
Source§fn failure_threshold(
&self,
epoch: Option<<SeqTypes as NodeType>::Epoch>,
) -> U256
fn failure_threshold( &self, epoch: Option<<SeqTypes as NodeType>::Epoch>, ) -> U256
Get the voting failure threshold for the committee
Source§fn upgrade_threshold(
&self,
epoch: Option<<SeqTypes as NodeType>::Epoch>,
) -> U256
fn upgrade_threshold( &self, epoch: Option<<SeqTypes as NodeType>::Epoch>, ) -> U256
Get the voting upgrade threshold for the committee
Source§type Error = LeaderLookupError
type Error = LeaderLookupError
lookup_leader
.Source§fn new(
_committee_members: Vec<PeerConfig<SeqTypes>>,
_da_members: Vec<PeerConfig<SeqTypes>>,
) -> Self
fn new( _committee_members: Vec<PeerConfig<SeqTypes>>, _da_members: Vec<PeerConfig<SeqTypes>>, ) -> Self
Source§async fn add_epoch_root(
&self,
epoch: <SeqTypes as NodeType>::Epoch,
block_header: Header,
) -> Option<Box<dyn FnOnce(&mut Self) + Send>>
async fn add_epoch_root( &self, epoch: <SeqTypes as NodeType>::Epoch, block_header: Header, ) -> Option<Box<dyn FnOnce(&mut Self) + Send>>
Source§fn has_stake_table(&self, epoch: <SeqTypes as NodeType>::Epoch) -> bool
fn has_stake_table(&self, epoch: <SeqTypes as NodeType>::Epoch) -> bool
Source§fn has_randomized_stake_table(
&self,
epoch: <SeqTypes as NodeType>::Epoch,
) -> bool
fn has_randomized_stake_table( &self, epoch: <SeqTypes as NodeType>::Epoch, ) -> bool
Source§async fn get_epoch_root(
membership: Arc<RwLock<Self>>,
block_height: u64,
epoch: <SeqTypes as NodeType>::Epoch,
) -> Result<Leaf2>
async fn get_epoch_root( membership: Arc<RwLock<Self>>, block_height: u64, epoch: <SeqTypes as NodeType>::Epoch, ) -> Result<Leaf2>
Source§async fn get_epoch_drb(
membership: Arc<RwLock<Self>>,
block_height: u64,
epoch: <SeqTypes as NodeType>::Epoch,
) -> Result<DrbResult>
async fn get_epoch_drb( membership: Arc<RwLock<Self>>, block_height: u64, epoch: <SeqTypes as NodeType>::Epoch, ) -> Result<DrbResult>
Source§fn add_drb_result(
&mut self,
epoch: <SeqTypes as NodeType>::Epoch,
drb: DrbResult,
)
fn add_drb_result( &mut self, epoch: <SeqTypes as NodeType>::Epoch, drb: DrbResult, )
Source§fn set_first_epoch(
&mut self,
epoch: <SeqTypes as NodeType>::Epoch,
initial_drb_result: DrbResult,
)
fn set_first_epoch( &mut self, epoch: <SeqTypes as NodeType>::Epoch, initial_drb_result: DrbResult, )
fn total_stake(&self, epoch: Option<<TYPES as NodeType>::Epoch>) -> Uint<256, 4>
fn total_da_stake( &self, epoch: Option<<TYPES as NodeType>::Epoch>, ) -> Uint<256, 4>
Source§impl MerklizedState<SeqTypes, { Self::ARITY }> for BlockMerkleTree
impl MerklizedState<SeqTypes, { Self::ARITY }> for BlockMerkleTree
type Key = <LightWeightMerkleTree<Commitment<Header>, Sha3Digest, u64, 3, Sha3Node> as MerkleTreeScheme>::Index
type Entry = Commitment<Header>
type T = Sha3Node
type Commit = <LightWeightMerkleTree<Commitment<Header>, Sha3Digest, u64, 3, Sha3Node> as MerkleTreeScheme>::Commitment
type Digest = Sha3Digest
Source§fn state_type() -> &'static str
fn state_type() -> &'static str
Source§fn header_state_commitment_field() -> &'static str
fn header_state_commitment_field() -> &'static str
Source§fn tree_height() -> usize
fn tree_height() -> usize
Source§fn insert_path(
&mut self,
key: Self::Key,
proof: &MerkleProof<Self::Entry, Self::Key, Self::T, { Self::ARITY }>,
) -> Result<()>
fn insert_path( &mut self, key: Self::Key, proof: &MerkleProof<Self::Entry, Self::Key, Self::T, { Self::ARITY }>, ) -> Result<()>
Source§impl MerklizedState<SeqTypes, { Self::ARITY }> for FeeMerkleTree
impl MerklizedState<SeqTypes, { Self::ARITY }> for FeeMerkleTree
type Key = <UniversalMerkleTree<FeeAmount, Sha3Digest, FeeAccount, FEE_MERKLE_TREE_ARITY, Sha3Node> as MerkleTreeScheme>::Index
type Entry = <UniversalMerkleTree<FeeAmount, Sha3Digest, FeeAccount, FEE_MERKLE_TREE_ARITY, Sha3Node> as MerkleTreeScheme>::Element
type T = Sha3Node
type Commit = <UniversalMerkleTree<FeeAmount, Sha3Digest, FeeAccount, FEE_MERKLE_TREE_ARITY, Sha3Node> as MerkleTreeScheme>::Commitment
type Digest = Sha3Digest
Source§fn state_type() -> &'static str
fn state_type() -> &'static str
Source§fn header_state_commitment_field() -> &'static str
fn header_state_commitment_field() -> &'static str
Source§fn tree_height() -> usize
fn tree_height() -> usize
Source§fn insert_path(
&mut self,
key: Self::Key,
proof: &MerkleProof<Self::Entry, Self::Key, Self::T, { Self::ARITY }>,
) -> Result<()>
fn insert_path( &mut self, key: Self::Key, proof: &MerkleProof<Self::Entry, Self::Key, Self::T, { Self::ARITY }>, ) -> Result<()>
Source§impl MerklizedState<SeqTypes, { Self::ARITY }> for RewardMerkleTree
impl MerklizedState<SeqTypes, { Self::ARITY }> for RewardMerkleTree
type Key = <UniversalMerkleTree<RewardAmount, Sha3Digest, RewardAccount, REWARD_MERKLE_TREE_ARITY, Sha3Node> as MerkleTreeScheme>::Index
type Entry = <UniversalMerkleTree<RewardAmount, Sha3Digest, RewardAccount, REWARD_MERKLE_TREE_ARITY, Sha3Node> as MerkleTreeScheme>::Element
type T = Sha3Node
type Commit = <UniversalMerkleTree<RewardAmount, Sha3Digest, RewardAccount, REWARD_MERKLE_TREE_ARITY, Sha3Node> as MerkleTreeScheme>::Commitment
type Digest = Sha3Digest
Source§fn state_type() -> &'static str
fn state_type() -> &'static str
Source§fn header_state_commitment_field() -> &'static str
fn header_state_commitment_field() -> &'static str
Source§fn tree_height() -> usize
fn tree_height() -> usize
Source§fn insert_path(
&mut self,
key: Self::Key,
proof: &MerkleProof<Self::Entry, Self::Key, Self::T, { Self::ARITY }>,
) -> Result<()>
fn insert_path( &mut self, key: Self::Key, proof: &MerkleProof<Self::Entry, Self::Key, Self::T, { Self::ARITY }>, ) -> Result<()>
Source§impl NodeType for SeqTypes
impl NodeType for SeqTypes
Source§type View = ViewNumber
type View = ViewNumber
Source§type Epoch = EpochNumber
type Epoch = EpochNumber
Source§type BlockHeader = Header
type BlockHeader = Header
Source§type BlockPayload = Payload
type BlockPayload = Payload
Source§type SignatureKey = VerKey
type SignatureKey = VerKey
Source§type Transaction = Transaction
type Transaction = Transaction
Source§type InstanceState = NodeState
type InstanceState = NodeState
Source§type ValidatedState = ValidatedState
type ValidatedState = ValidatedState
Source§type Membership = EpochCommittees
type Membership = EpochCommittees
Source§type BuilderSignatureKey = FeeAccount
type BuilderSignatureKey = FeeAccount
Source§type AuctionResult = SolverAuctionResults
type AuctionResult = SolverAuctionResults
Source§type StateSignatureKey = VerKey<EdwardsConfig>
type StateSignatureKey = VerKey<EdwardsConfig>
Source§const UPGRADE_CONSTANTS: UpgradeConstants = DEFAULT_UPGRADE_CONSTANTS
const UPGRADE_CONSTANTS: UpgradeConstants = DEFAULT_UPGRADE_CONSTANTS
Source§impl Ord for SeqTypes
impl Ord for SeqTypes
Source§impl PartialOrd for SeqTypes
impl PartialOrd for SeqTypes
Source§impl QueryablePayload<SeqTypes> for Payload
impl QueryablePayload<SeqTypes> for Payload
Source§type TransactionIndex = Index
type TransactionIndex = Index
Source§type InclusionProof = TxProof
type InclusionProof = TxProof
Source§fn iter<'a>(&'a self, _meta: &'a Self::Metadata) -> Self::Iter<'a>
fn iter<'a>(&'a self, _meta: &'a Self::Metadata) -> Self::Iter<'a>
Source§fn transaction_with_proof(
&self,
_meta: &Self::Metadata,
index: &Self::TransactionIndex,
) -> Option<(Self::Transaction, Self::InclusionProof)>
fn transaction_with_proof( &self, _meta: &Self::Metadata, index: &Self::TransactionIndex, ) -> Option<(Self::Transaction, Self::InclusionProof)>
Source§fn transaction(
&self,
_meta: &Self::Metadata,
index: &Self::TransactionIndex,
) -> Option<Self::Transaction>
fn transaction( &self, _meta: &Self::Metadata, index: &Self::TransactionIndex, ) -> Option<Self::Transaction>
§fn enumerate<'a>(
&'a self,
meta: &'a Self::Metadata,
) -> Box<dyn Iterator<Item = (Self::TransactionIndex, Self::Transaction)> + 'a>
fn enumerate<'a>( &'a self, meta: &'a Self::Metadata, ) -> Box<dyn Iterator<Item = (Self::TransactionIndex, Self::Transaction)> + 'a>
§fn proof(
&self,
meta: &Self::Metadata,
index: &Self::TransactionIndex,
) -> Option<Self::InclusionProof>
fn proof( &self, meta: &Self::Metadata, index: &Self::TransactionIndex, ) -> Option<Self::InclusionProof>
§fn nth(&self, meta: &Self::Metadata, n: usize) -> Option<Self::TransactionIndex>
fn nth(&self, meta: &Self::Metadata, n: usize) -> Option<Self::TransactionIndex>
nth
transaction.§fn nth_transaction(
&self,
meta: &Self::Metadata,
n: usize,
) -> Option<Self::Transaction>
fn nth_transaction( &self, meta: &Self::Metadata, n: usize, ) -> Option<Self::Transaction>
nth
transaction.§fn nth_transaction_with_proof(
&self,
meta: &Self::Metadata,
n: usize,
) -> Option<(Self::Transaction, Self::InclusionProof)>
fn nth_transaction_with_proof( &self, meta: &Self::Metadata, n: usize, ) -> Option<(Self::Transaction, Self::InclusionProof)>
nth
transaction, along with an inclusion proof.§fn by_hash(
&self,
meta: &Self::Metadata,
hash: Commitment<Self::Transaction>,
) -> Option<Self::TransactionIndex>
fn by_hash( &self, meta: &Self::Metadata, hash: Commitment<Self::Transaction>, ) -> Option<Self::TransactionIndex>
§fn transaction_by_hash(
&self,
meta: &Self::Metadata,
hash: Commitment<Self::Transaction>,
) -> Option<Self::Transaction>
fn transaction_by_hash( &self, meta: &Self::Metadata, hash: Commitment<Self::Transaction>, ) -> Option<Self::Transaction>
§fn transaction_by_hash_with_proof(
&self,
meta: &Self::Metadata,
hash: Commitment<Self::Transaction>,
) -> Option<(Self::Transaction, Self::InclusionProof)>
fn transaction_by_hash_with_proof( &self, meta: &Self::Metadata, hash: Commitment<Self::Transaction>, ) -> Option<(Self::Transaction, Self::InclusionProof)>
Source§impl<P: SequencerPersistence> Storage<SeqTypes> for Arc<P>
impl<P: SequencerPersistence> Storage<SeqTypes> for Arc<P>
Source§fn append_vid<'life0, 'life1, 'async_trait>(
&'life0 self,
proposal: &'life1 Proposal<SeqTypes, ADVZDisperseShare<SeqTypes>>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn append_vid<'life0, 'life1, 'async_trait>(
&'life0 self,
proposal: &'life1 Proposal<SeqTypes, ADVZDisperseShare<SeqTypes>>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn append_vid2<'life0, 'life1, 'async_trait>(
&'life0 self,
proposal: &'life1 Proposal<SeqTypes, VidDisperseShare2<SeqTypes>>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn append_vid2<'life0, 'life1, 'async_trait>(
&'life0 self,
proposal: &'life1 Proposal<SeqTypes, VidDisperseShare2<SeqTypes>>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn append_da<'life0, 'life1, 'async_trait>(
&'life0 self,
proposal: &'life1 Proposal<SeqTypes, DaProposal<SeqTypes>>,
vid_commit: VidCommitment,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn append_da<'life0, 'life1, 'async_trait>(
&'life0 self,
proposal: &'life1 Proposal<SeqTypes, DaProposal<SeqTypes>>,
vid_commit: VidCommitment,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn append_da2<'life0, 'life1, 'async_trait>(
&'life0 self,
proposal: &'life1 Proposal<SeqTypes, DaProposal2<SeqTypes>>,
vid_commit: VidCommitment,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn append_da2<'life0, 'life1, 'async_trait>(
&'life0 self,
proposal: &'life1 Proposal<SeqTypes, DaProposal2<SeqTypes>>,
vid_commit: VidCommitment,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn record_action<'life0, 'async_trait>(
&'life0 self,
view: ViewNumber,
epoch: Option<EpochNumber>,
action: HotShotAction,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn record_action<'life0, 'async_trait>(
&'life0 self,
view: ViewNumber,
epoch: Option<EpochNumber>,
action: HotShotAction,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn update_high_qc<'life0, 'async_trait>(
&'life0 self,
_high_qc: QuorumCertificate<SeqTypes>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update_high_qc<'life0, 'async_trait>(
&'life0 self,
_high_qc: QuorumCertificate<SeqTypes>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn append_proposal<'life0, 'life1, 'async_trait>(
&'life0 self,
proposal: &'life1 Proposal<SeqTypes, QuorumProposal<SeqTypes>>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn append_proposal<'life0, 'life1, 'async_trait>(
&'life0 self,
proposal: &'life1 Proposal<SeqTypes, QuorumProposal<SeqTypes>>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn append_proposal2<'life0, 'life1, 'async_trait>(
&'life0 self,
proposal: &'life1 Proposal<SeqTypes, QuorumProposal2<SeqTypes>>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn append_proposal2<'life0, 'life1, 'async_trait>(
&'life0 self,
proposal: &'life1 Proposal<SeqTypes, QuorumProposal2<SeqTypes>>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn update_high_qc2<'life0, 'async_trait>(
&'life0 self,
_high_qc: QuorumCertificate2<SeqTypes>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update_high_qc2<'life0, 'async_trait>(
&'life0 self,
_high_qc: QuorumCertificate2<SeqTypes>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn update_decided_upgrade_certificate<'life0, 'async_trait>(
&'life0 self,
decided_upgrade_certificate: Option<UpgradeCertificate<SeqTypes>>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update_decided_upgrade_certificate<'life0, 'async_trait>(
&'life0 self,
decided_upgrade_certificate: Option<UpgradeCertificate<SeqTypes>>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn add_drb_result<'life0, 'async_trait>(
&'life0 self,
epoch: <SeqTypes as NodeType>::Epoch,
drb_result: DrbResult,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn add_drb_result<'life0, 'async_trait>(
&'life0 self,
epoch: <SeqTypes as NodeType>::Epoch,
drb_result: DrbResult,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn add_epoch_root<'life0, 'async_trait>(
&'life0 self,
epoch: <SeqTypes as NodeType>::Epoch,
block_header: <SeqTypes as NodeType>::BlockHeader,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn add_epoch_root<'life0, 'async_trait>(
&'life0 self,
epoch: <SeqTypes as NodeType>::Epoch,
block_header: <SeqTypes as NodeType>::BlockHeader,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn update_state_cert<'life0, 'async_trait>(
&'life0 self,
state_cert: LightClientStateUpdateCertificate<SeqTypes>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update_state_cert<'life0, 'async_trait>(
&'life0 self,
state_cert: LightClientStateUpdateCertificate<SeqTypes>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn append_vid_general<'life0, 'life1, 'async_trait>(
&'life0 self,
proposal: &'life1 Proposal<TYPES, VidDisperseShare<TYPES>>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Source§fn append_proposal_wrapper<'life0, 'life1, 'async_trait>(
&'life0 self,
proposal: &'life1 Proposal<TYPES, QuorumProposalWrapper<TYPES>>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn append_proposal_wrapper<'life0, 'life1, 'async_trait>(
&'life0 self,
proposal: &'life1 Proposal<TYPES, QuorumProposalWrapper<TYPES>>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn update_high_qc2_and_state_cert<'life0, 'async_trait>(
&'life0 self,
high_qc: SimpleCertificate<TYPES, QuorumData2<TYPES>, SuccessThreshold>,
state_cert: LightClientStateUpdateCertificate<TYPES>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn update_next_epoch_high_qc2<'life0, 'async_trait>(
&'life0 self,
_next_epoch_high_qc: SimpleCertificate<TYPES, NextEpochQuorumData2<TYPES>, SuccessThreshold>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn update_next_epoch_high_qc2<'life0, 'async_trait>(
&'life0 self,
_next_epoch_high_qc: SimpleCertificate<TYPES, NextEpochQuorumData2<TYPES>, SuccessThreshold>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§fn migrate_consensus<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn migrate_consensus<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Leaf
to Leaf2
, and proposals from QuorumProposal
to QuorumProposal2
fn add_drb_input<'life0, 'async_trait>(
&'life0 self,
_epoch: u64,
_iteration: u64,
_drb_input: [u8; 32],
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn load_drb_input<'life0, 'async_trait>(
&'life0 self,
_epoch: u64,
) -> Pin<Box<dyn Future<Output = Result<DrbInput, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Source§impl ValidatedState<SeqTypes> for ValidatedState
impl ValidatedState<SeqTypes> for ValidatedState
Source§async fn validate_and_apply_header(
&self,
instance: &Self::Instance,
parent_leaf: &Leaf2,
proposed_header: &Header,
payload_byte_len: u32,
version: Version,
view_number: u64,
) -> Result<(Self, Self::Delta), Self::Error>
async fn validate_and_apply_header( &self, instance: &Self::Instance, parent_leaf: &Leaf2, proposed_header: &Header, payload_byte_len: u32, version: Version, view_number: u64, ) -> Result<(Self, Self::Delta), Self::Error>
Validate parent against known values (from state) and validate
proposal descends from parent. Returns updated ValidatedState
.
Source§fn from_header(block_header: &Header) -> Self
fn from_header(block_header: &Header) -> Self
Construct the state with the given block header.
This can also be used to rebuild the state for catchup.
Source§fn genesis(instance: &Self::Instance) -> (Self, Self::Delta)
fn genesis(instance: &Self::Instance) -> (Self, Self::Delta)
Construct a genesis validated state.
Source§type Error = BlockError
type Error = BlockError
Source§type Time = ViewNumber
type Time = ViewNumber
impl Copy for SeqTypes
impl Eq for SeqTypes
impl StructuralPartialEq for SeqTypes
Auto Trait Implementations§
impl Freeze for SeqTypes
impl RefUnwindSafe for SeqTypes
impl Send for SeqTypes
impl Sync for SeqTypes
impl Unpin for SeqTypes
impl UnwindSafe for SeqTypes
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
§impl<T> CallHasher for T
impl<T> CallHasher for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<T> Conv for T
impl<T> Conv for T
§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
§fn deserialize(
&self,
deserializer: &mut D,
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
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>
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§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.