pub struct AuthorityPerEpochStore { /* private fields */ }

Implementations§

source§

impl AuthorityPerEpochStore

source

pub fn new( name: AuthorityName, committee: Arc<Committee>, parent_path: &Path, db_options: Option<Options>, metrics: Arc<EpochMetrics>, epoch_start_configuration: EpochStartConfiguration, execution_cache: Arc<ExecutionCache>, cache_metrics: Arc<ResolverMetrics>, signature_verifier_metrics: Arc<SignatureVerifierMetrics>, expensive_safety_check_config: &ExpensiveSafetyCheckConfig, chain_identifier: ChainIdentifier ) -> Arc<Self>

source

pub fn tables(&self) -> SuiResult<Arc<AuthorityEpochTables>>

source

pub fn release_db_handles(&self)

source

pub fn authenticator_state_enabled(&self) -> bool

source

pub fn authenticator_state_exists(&self) -> bool

source

pub fn randomness_state_enabled(&self) -> bool

source

pub fn randomness_state_exists(&self) -> bool

source

pub fn randomness_reporter(&self) -> Option<RandomnessReporter>

source

pub fn set_randomness_manager( &self, randomness_manager: RandomnessManager ) -> SuiResult<()>

source

pub fn coin_deny_list_state_exists(&self) -> bool

source

pub fn coin_deny_list_state_enabled(&self) -> bool

source

pub fn get_parent_path(&self) -> PathBuf

source

pub fn epoch_start_config(&self) -> &Arc<EpochStartConfiguration>

Returns &Arc<EpochStartConfiguration> User can treat this Arc as &EpochStartConfiguration, or clone the Arc to pass as owned object

source

pub fn epoch_start_state(&self) -> &EpochStartSystemState

source

pub fn get_chain_identifier(&self) -> ChainIdentifier

source

pub fn new_at_next_epoch( &self, name: AuthorityName, new_committee: Committee, epoch_start_configuration: EpochStartConfiguration, cache: Arc<ExecutionCache>, expensive_safety_check_config: &ExpensiveSafetyCheckConfig, chain_identifier: ChainIdentifier ) -> Arc<Self>

source

pub fn committee(&self) -> &Arc<Committee>

source

pub fn protocol_config(&self) -> &ProtocolConfig

source

pub fn epoch(&self) -> EpochId

source

pub fn get_state_hash_for_checkpoint( &self, checkpoint: &CheckpointSequenceNumber ) -> SuiResult<Option<Accumulator>>

source

pub fn insert_state_hash_for_checkpoint( &self, checkpoint: &CheckpointSequenceNumber, accumulator: &Accumulator ) -> SuiResult

source

pub fn reference_gas_price(&self) -> u64

source

pub fn protocol_version(&self) -> ProtocolVersion

source

pub fn module_cache( &self ) -> &Arc<SyncModuleCache<ResolverWrapper<ExecutionCache>>>

source

pub fn executor(&self) -> &Arc<dyn Executor + Send + Sync>

source

pub async fn acquire_tx_guard( &self, cert: &VerifiedExecutableTransaction ) -> SuiResult<CertTxGuard>

source

pub async fn acquire_tx_lock(&self, digest: &TransactionDigest) -> CertLockGuard

Acquire the lock for a tx without writing to the WAL.

source

pub fn store_reconfig_state(&self, new_state: &ReconfigState) -> SuiResult

source

pub fn insert_signed_transaction( &self, transaction: VerifiedSignedTransaction ) -> SuiResult

source

pub fn get_signed_transaction( &self, tx_digest: &TransactionDigest ) -> SuiResult<Option<VerifiedSignedTransaction>>

source

pub fn insert_tx_cert_and_effects_signature( &self, tx_key: &TransactionKey, tx_digest: &TransactionDigest, cert_sig: Option<&AuthorityStrongQuorumSignInfo>, effects_signature: Option<&AuthoritySignInfo> ) -> SuiResult

source

pub fn effects_signatures_exists<'a>( &self, digests: impl IntoIterator<Item = &'a TransactionDigest> ) -> SuiResult<Vec<bool>>

source

pub fn get_effects_signature( &self, tx_digest: &TransactionDigest ) -> SuiResult<Option<AuthoritySignInfo>>

source

pub fn get_transaction_cert_sig( &self, tx_digest: &TransactionDigest ) -> SuiResult<Option<AuthorityStrongQuorumSignInfo>>

source

pub fn get_last_consensus_index(&self) -> SuiResult<ExecutionIndicesWithHash>

source

pub fn get_last_consensus_stats(&self) -> SuiResult<ExecutionIndicesWithStats>

source

pub fn get_accumulators_in_checkpoint_range( &self, from_checkpoint: CheckpointSequenceNumber, to_checkpoint: CheckpointSequenceNumber ) -> SuiResult<Vec<(CheckpointSequenceNumber, Accumulator)>>

source

pub async fn notify_read_checkpoint_state_digests( &self, checkpoints: Vec<CheckpointSequenceNumber> ) -> SuiResult<Vec<Accumulator>>

Returns future containing the state digest for the given epoch once available

source

pub fn all_pending_execution( &self ) -> SuiResult<Vec<VerifiedExecutableTransaction>>

pending_certificates table related methods. Should only be used from TransactionManager. Gets all pending certificates. Used during recovery.

source

pub fn multi_remove_pending_execution( &self, digests: &[TransactionDigest] ) -> SuiResult<()>

Deletes many pending certificates.

source

pub fn get_all_pending_consensus_transactions( &self ) -> Vec<ConsensusTransaction>

source

pub fn set_shared_object_versions_for_testing( &self, tx_digest: &TransactionDigest, assigned_versions: &Vec<(ObjectID, SequenceNumber)> ) -> SuiResult

source

pub fn insert_finalized_transactions( &self, digests: &[TransactionDigest], sequence: CheckpointSequenceNumber ) -> SuiResult

source

pub fn is_transaction_executed_in_checkpoint( &self, digest: &TransactionDigest ) -> SuiResult<bool>

source

pub fn get_transaction_checkpoint( &self, digest: &TransactionDigest ) -> SuiResult<Option<CheckpointSequenceNumber>>

source

pub fn multi_get_transaction_checkpoint( &self, digests: &[TransactionDigest] ) -> SuiResult<Vec<Option<CheckpointSequenceNumber>>>

source

pub fn per_epoch_finalized_txns_enabled(&self) -> bool

source

pub fn object_lock_split_tables_enabled(&self) -> bool

source

pub async fn assign_shared_object_versions_idempotent( &self, cache_reader: &dyn ExecutionCacheRead, certificates: &[VerifiedExecutableTransaction] ) -> SuiResult

Given list of certificates, assign versions for all shared objects used in them. We start with the current next_shared_object_versions table for each object, and build up the versions based on the dependencies of each certificate. However, in the end we do not update the next_shared_object_versions table, which keeps this function idempotent. We should call this function when we are assigning shared object versions outside of consensus and do not want to taint the next_shared_object_versions table.

source

pub fn get_all_deferred_transactions_for_test( &self ) -> SuiResult<Vec<(DeferralKey, Vec<VerifiedSequencedConsensusTransaction>)>>

source

pub async fn acquire_shared_locks_from_effects( &self, certificate: &VerifiedExecutableTransaction, effects: &TransactionEffects, cache_reader: &dyn ExecutionCacheRead ) -> SuiResult

Lock a sequence number for the shared objects of the input transaction based on the effects of that transaction. Used by full nodes who don’t listen to consensus, and validators who catch up by state sync.

source

pub fn insert_pending_consensus_transactions( &self, transaction: &ConsensusTransaction, lock: Option<&RwLockReadGuard<'_, ReconfigState>> ) -> SuiResult

When submitting a certificate caller must provide a ReconfigState lock guard and verify that it allows new user certificates

source

pub fn remove_pending_consensus_transaction( &self, key: &ConsensusTransactionKey ) -> SuiResult

source

pub fn pending_consensus_certificates_count(&self) -> usize

source

pub fn pending_consensus_certificates_empty(&self) -> bool

source

pub fn pending_consensus_certificates(&self) -> HashSet<TransactionDigest>

source

pub fn deferred_transactions_empty(&self) -> bool

source

pub fn insert_pending_execution( &self, certs: &[TrustedExecutableTransaction] ) -> SuiResult<()>

Stores a list of pending certificates to be executed.

source

pub fn is_tx_cert_consensus_message_processed( &self, certificate: &CertifiedTransaction ) -> SuiResult<bool>

Check whether certificate was processed by consensus. For shared lock certificates, if this function returns true means shared locks for this certificate are set

source

pub fn is_consensus_message_processed( &self, key: &SequencedConsensusTransactionKey ) -> SuiResult<bool>

source

pub async fn consensus_message_processed_notify( &self, key: SequencedConsensusTransactionKey ) -> Result<(), SuiError>

source

pub fn check_consensus_messages_processed<'a>( &self, keys: impl Iterator<Item = &'a SequencedConsensusTransactionKey> ) -> SuiResult<Vec<bool>>

source

pub async fn consensus_messages_processed_notify( &self, keys: Vec<SequencedConsensusTransactionKey> ) -> Result<(), SuiError>

source

pub fn has_sent_end_of_publish( &self, authority: &AuthorityName ) -> SuiResult<bool>

source

pub async fn notify_read_executed_digests( &self, keys: &[TransactionKey] ) -> SuiResult<Vec<TransactionDigest>>

source

pub fn user_signatures_for_checkpoint( &self, transactions: &[VerifiedTransaction], digests: &[TransactionDigest] ) -> SuiResult<Vec<Vec<GenericSignature>>>

Note: caller usually need to call consensus_message_processed_notify before this call

source

pub fn clear_override_protocol_upgrade_buffer_stake(&self) -> SuiResult

source

pub fn set_override_protocol_upgrade_buffer_stake( &self, new_stake_bps: u64 ) -> SuiResult

source

pub fn get_effective_buffer_stake_bps(&self) -> u64

source

pub fn record_capabilities( &self, capabilities: &AuthorityCapabilities ) -> SuiResult

Record most recently advertised capabilities of all authorities

source

pub fn get_capabilities(&self) -> SuiResult<Vec<AuthorityCapabilities>>

source

pub fn record_jwk_vote( &self, batch: &mut DBBatch, round: u64, authority: AuthorityName, id: &JwkId, jwk: &JWK ) -> SuiResult

source

pub fn jwk_active_in_current_epoch(&self, jwk_id: &JwkId, jwk: &JWK) -> bool

source

pub fn test_insert_user_signature( &self, digest: TransactionDigest, signatures: Vec<GenericSignature> )

source

pub fn finish_consensus_certificate_process_with_batch( &self, batch: &mut DBBatch, certificates: &[VerifiedExecutableTransaction] ) -> SuiResult

source

pub fn get_reconfig_state_read_lock_guard( &self ) -> RwLockReadGuard<'_, ReconfigState>

source

pub fn get_reconfig_state_write_lock_guard( &self ) -> RwLockWriteGuard<'_, ReconfigState>

source

pub fn close_user_certs(&self, lock_guard: RwLockWriteGuard<'_, ReconfigState>)

source

pub async fn user_certs_closed_notify(&self)

source

pub async fn epoch_terminated(&self)

Notify epoch is terminated, can only be called once on epoch store

source

pub async fn wait_epoch_terminated(&self)

Waits for the notification about epoch termination

source

pub async fn within_alive_epoch<F: Future + Send>( &self, f: F ) -> Result<F::Output, ()>

This function executes given future until epoch_terminated is called If future finishes before epoch_terminated is called, future result is returned If epoch_terminated is called before future is resolved, error is returned

In addition to the early termination guarantee, this function also prevents epoch_terminated() if future is being executed.

source

pub fn verify_transaction( &self, tx: Transaction ) -> SuiResult<VerifiedTransaction>

source

pub fn get_highest_pending_checkpoint_height(&self) -> CheckpointHeight

source

pub async fn process_consensus_transactions_for_tests<C: CheckpointServiceNotify>( self: &Arc<Self>, transactions: Vec<SequencedConsensusTransaction>, checkpoint_service: &Arc<C>, cache_reader: &dyn ExecutionCacheRead, authority_metrics: &Arc<AuthorityMetrics> ) -> SuiResult<Vec<VerifiedExecutableTransaction>>

source

pub fn get_pending_checkpoints( &self, last: Option<CheckpointHeight> ) -> SuiResult<Vec<(CheckpointHeight, PendingCheckpointV2)>>

source

pub fn get_pending_checkpoint( &self, index: &CheckpointHeight ) -> SuiResult<Option<PendingCheckpointV2>>

source

pub fn process_pending_checkpoint( &self, commit_height: CheckpointHeight, content_info: Vec<(CheckpointSummary, CheckpointContents)> ) -> SuiResult<()>

source

pub fn put_genesis_checkpoint_in_builder( &self, summary: &CheckpointSummary, contents: &CheckpointContents ) -> SuiResult<()>

Register genesis checkpoint in builder DB

source

pub fn last_built_checkpoint_commit_height( &self ) -> SuiResult<Option<CheckpointHeight>>

source

pub fn last_built_checkpoint_summary( &self ) -> SuiResult<Option<(CheckpointSequenceNumber, CheckpointSummary)>>

source

pub fn get_built_checkpoint_summary( &self, sequence: CheckpointSequenceNumber ) -> SuiResult<Option<CheckpointSummary>>

source

pub fn builder_included_transactions_in_checkpoint<'a>( &self, digests: impl Iterator<Item = &'a TransactionDigest> ) -> SuiResult<Vec<bool>>

source

pub fn get_last_checkpoint_signature_index(&self) -> SuiResult<u64>

source

pub fn insert_checkpoint_signature( &self, checkpoint_seq: CheckpointSequenceNumber, index: u64, info: &CheckpointSignatureMessage ) -> SuiResult<()>

source

pub fn record_end_of_message_quorum_time_metric(&self)

source

pub fn record_epoch_reconfig_start_time_metric(&self)

source

pub fn record_is_safe_mode_metric(&self, safe_mode: bool)

source

pub fn record_checkpoint_builder_is_safe_mode_metric(&self, safe_mode: bool)

source

pub fn clear_signature_cache(&self)

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Any for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

§

fn type_name(&self) -> &'static str

§

impl<T> AnySync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32 ) -> TaggedParser<'a, Implicit, Self, E>

source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FutureExt for T

§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> IntoRequest<T> for T

§

fn into_request(self) -> Request<T>

Wrap the input message T in a Request
source§

impl<T> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
source§

impl<T> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
§

impl<T> Pipe for T
where T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows 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) -> R
where R: 'a,

Mutably borrows 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
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows 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
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows 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
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .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
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .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
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more