pub struct TempoTransaction {Show 14 fields
pub chain_id: ChainId,
pub fee_token: Option<Address>,
pub max_priority_fee_per_gas: u128,
pub max_fee_per_gas: u128,
pub gas_limit: u64,
pub calls: Vec<Call>,
pub access_list: AccessList,
pub nonce_key: U256,
pub nonce: u64,
pub fee_payer_signature: Option<Signature>,
pub valid_before: Option<u64>,
pub valid_after: Option<u64>,
pub key_authorization: Option<SignedKeyAuthorization>,
pub tempo_authorization_list: Vec<TempoSignedAuthorization>,
}Expand description
Tempo transaction following the Tempo spec.
This transaction type supports:
- Multiple signature types (secp256k1, P256, WebAuthn)
- Parallelizable nonces via 2D nonce system (nonce_key + nonce)
- Gas sponsorship via fee payer
- Scheduled transactions (validBefore/validAfter)
- EIP-7702 authorization lists
Fields§
§chain_id: ChainIdEIP-155: Simple replay attack protection
fee_token: Option<Address>Optional fee token preference (None means no preference)
max_priority_fee_per_gas: u128Max Priority fee per gas (EIP-1559)
max_fee_per_gas: u128Max fee per gas (EIP-1559)
gas_limit: u64Gas limit
calls: Vec<Call>Calls to be executed atomically
access_list: AccessListAccess list (EIP-2930)
nonce_key: U256TT-specific fields Nonce key for 2D nonce system Key 0 is the protocol nonce, keys 1-N are user nonces for parallelization
nonce: u64Current nonce value for the nonce key
fee_payer_signature: Option<Signature>Optional features Optional fee payer signature for sponsored transactions (secp256k1 only)
valid_before: Option<u64>Transaction can only be included in a block before this timestamp
valid_after: Option<u64>Transaction can only be included in a block after this timestamp
Optional key authorization for provisioning a new access key
When present, this transaction will add the specified key to the AccountKeychain precompile, before verifying the transaction signature. The authorization must be signed with the root key, the tx can be signed by the Keychain signature.
Authorization list (EIP-7702 style with Tempo signatures)
Implementations§
Source§impl TempoTransaction
impl TempoTransaction
Sourcepub fn validate(&self) -> Result<(), &'static str>
pub fn validate(&self) -> Result<(), &'static str>
Validates the transaction according to the spec rules
Sourcepub fn into_signed(self, signature: TempoSignature) -> AASigned
pub fn into_signed(self, signature: TempoSignature) -> AASigned
Convert the transaction into a signed transaction
Sourcepub fn signature_hash(&self) -> B256
pub fn signature_hash(&self) -> B256
Calculate the signing hash for this transaction This is the hash that should be signed by the sender
Sourcepub fn fee_payer_signature_hash(&self, sender: Address) -> B256
pub fn fee_payer_signature_hash(&self, sender: Address) -> B256
Calculate the fee payer signature hash This hash is signed by the fee payer to sponsor the transaction
Sourcefn rlp_encoded_fields_length(
&self,
signature_length: impl FnOnce(&Option<Signature>) -> usize,
skip_fee_token: bool,
) -> usize
fn rlp_encoded_fields_length( &self, signature_length: impl FnOnce(&Option<Signature>) -> usize, skip_fee_token: bool, ) -> usize
Outputs the length of the transaction’s fields, without a RLP header.
This is the internal helper that takes closures for flexible encoding.
fn rlp_encode_fields( &self, out: &mut dyn BufMut, encode_signature: impl FnOnce(&Option<Signature>, &mut dyn BufMut), skip_fee_token: bool, )
Sourcepub(crate) fn rlp_encoded_fields_length_default(&self) -> usize
pub(crate) fn rlp_encoded_fields_length_default(&self) -> usize
Public version for normal RLP encoding
Sourcepub(crate) fn rlp_encode_fields_default(&self, out: &mut dyn BufMut)
pub(crate) fn rlp_encode_fields_default(&self, out: &mut dyn BufMut)
Public version for normal RLP encoding
Sourcepub(crate) fn rlp_decode_fields(buf: &mut &[u8]) -> Result<Self>
pub(crate) fn rlp_decode_fields(buf: &mut &[u8]) -> Result<Self>
Decodes the inner TempoTransaction fields from RLP bytes
Sourcepub fn has_sub_block_nonce_key_prefix(&self) -> bool
pub fn has_sub_block_nonce_key_prefix(&self) -> bool
Returns true if the nonce key of this transaction has the TEMPO_SUBBLOCK_NONCE_KEY_PREFIX.
Sourcepub fn subblock_proposer(&self) -> Option<PartialValidatorKey>
pub fn subblock_proposer(&self) -> Option<PartialValidatorKey>
Returns the proposer of the subblock if this is a subblock transaction.
Trait Implementations§
Source§impl<'a> Arbitrary<'a> for TempoTransaction
Available on crate features arbitrary only.
impl<'a> Arbitrary<'a> for TempoTransaction
arbitrary only.Source§fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self>
Self from the given unstructured data. Read more§fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>
fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>
Self from the entirety of the given
unstructured data. Read moreSource§impl Clone for TempoTransaction
impl Clone for TempoTransaction
Source§fn clone(&self) -> TempoTransaction
fn clone(&self) -> TempoTransaction
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Compact for TempoTransaction
Available on crate feature reth-codec only.
impl Compact for TempoTransaction
reth-codec only.Source§fn to_compact<B>(&self, buf: &mut B) -> usize
fn to_compact<B>(&self, buf: &mut B) -> usize
Source§fn from_compact(buf: &[u8], len: usize) -> (Self, &[u8])
fn from_compact(buf: &[u8], len: usize) -> (Self, &[u8])
buf with its internal cursor
advanced (eg..advance(len)). Read more§fn specialized_to_compact<B>(&self, buf: &mut B) -> usize
fn specialized_to_compact<B>(&self, buf: &mut B) -> usize
§fn specialized_from_compact(buf: &[u8], len: usize) -> (Self, &[u8])
fn specialized_from_compact(buf: &[u8], len: usize) -> (Self, &[u8])
Source§impl Debug for TempoTransaction
impl Debug for TempoTransaction
Source§impl Decodable for TempoTransaction
impl Decodable for TempoTransaction
Source§impl Default for TempoTransaction
impl Default for TempoTransaction
Source§fn default() -> TempoTransaction
fn default() -> TempoTransaction
Source§impl<'de> Deserialize<'de> for TempoTransaction
impl<'de> Deserialize<'de> for TempoTransaction
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 Encodable for TempoTransaction
impl Encodable for TempoTransaction
Source§impl From<TempoTransaction> for TempoTypedTransaction
impl From<TempoTransaction> for TempoTypedTransaction
Source§fn from(value: TempoTransaction) -> Self
fn from(value: TempoTransaction) -> Self
Source§impl Hash for TempoTransaction
impl Hash for TempoTransaction
Source§impl InMemorySize for TempoTransaction
impl InMemorySize for TempoTransaction
Source§impl PartialEq for TempoTransaction
impl PartialEq for TempoTransaction
Source§impl Serialize for TempoTransaction
impl Serialize for TempoTransaction
Source§impl SignableTransaction<Signature> for TempoTransaction
impl SignableTransaction<Signature> for TempoTransaction
Source§fn set_chain_id(&mut self, chain_id: ChainId)
fn set_chain_id(&mut self, chain_id: ChainId)
chain_id. Read moreSource§fn encode_for_signing(&self, out: &mut dyn BufMut)
fn encode_for_signing(&self, out: &mut dyn BufMut)
Source§fn payload_len_for_signature(&self) -> usize
fn payload_len_for_signature(&self) -> usize
§fn set_chain_id_checked(&mut self, chain_id: u64) -> bool
fn set_chain_id_checked(&mut self, chain_id: u64) -> bool
chain_id if it is not already set. Checks that the provided chain_id matches the
existing chain_id if it is already set, returning false if they do not match.§fn encoded_for_signing(&self) -> Vec<u8> ⓘ
fn encoded_for_signing(&self) -> Vec<u8> ⓘ
signature_hash. Read more§fn signature_hash(&self) -> FixedBytes<32>
fn signature_hash(&self) -> FixedBytes<32>
§fn into_signed(self, signature: Signature) -> Signed<Self, Signature>where
Self: Sized,
fn into_signed(self, signature: Signature) -> Signed<Self, Signature>where
Self: Sized,
Signed] object.Source§impl Transaction for TempoTransaction
impl Transaction for TempoTransaction
Source§fn max_fee_per_gas(&self) -> u128
fn max_fee_per_gas(&self) -> u128
Source§fn max_priority_fee_per_gas(&self) -> Option<u128>
fn max_priority_fee_per_gas(&self) -> Option<u128>
Source§fn max_fee_per_blob_gas(&self) -> Option<u128>
fn max_fee_per_blob_gas(&self) -> Option<u128>
Source§fn priority_fee_or_price(&self) -> u128
fn priority_fee_or_price(&self) -> u128
Source§fn effective_gas_price(&self, base_fee: Option<u64>) -> u128
fn effective_gas_price(&self, base_fee: Option<u64>) -> u128
Source§fn is_dynamic_fee(&self) -> bool
fn is_dynamic_fee(&self) -> bool
true if the transaction supports dynamic fees.Source§fn is_create(&self) -> bool
fn is_create(&self) -> bool
kind as it copies the 21-byte
[TxKind] for this simple check. A proper implementation shouldn’t allocate.Source§fn access_list(&self) -> Option<&AccessList>
fn access_list(&self) -> Option<&AccessList>
access_list for the particular transaction type. Returns None for
older transaction types.Source§fn blob_versioned_hashes(&self) -> Option<&[B256]>
fn blob_versioned_hashes(&self) -> Option<&[B256]>
None.SignedAuthorization] list of the transaction. Read more§fn effective_tip_per_gas(&self, base_fee: u64) -> Option<u128>
fn effective_tip_per_gas(&self, base_fee: u64) -> Option<u128>
§fn to(&self) -> Option<Address>
fn to(&self) -> Option<Address>
§fn function_selector(&self) -> Option<&FixedBytes<4>>
fn function_selector(&self) -> Option<&FixedBytes<4>>
§fn blob_count(&self) -> Option<u64>
fn blob_count(&self) -> Option<u64>
§fn blob_gas_used(&self) -> Option<u64>
fn blob_gas_used(&self) -> Option<u64>
SignedAuthorization] in this transactions Read moreSource§impl Typed2718 for TempoTransaction
impl Typed2718 for TempoTransaction
§fn is_eip2930(&self) -> bool
fn is_eip2930(&self) -> bool
§fn is_eip1559(&self) -> bool
fn is_eip1559(&self) -> bool
§fn is_eip4844(&self) -> bool
fn is_eip4844(&self) -> bool
§fn is_eip7702(&self) -> bool
fn is_eip7702(&self) -> bool
impl Eq for TempoTransaction
impl RlpBincode for TempoTransaction
serde-bincode-compat only.impl StructuralPartialEq for TempoTransaction
Auto Trait Implementations§
impl !Freeze for TempoTransaction
impl RefUnwindSafe for TempoTransaction
impl Send for TempoTransaction
impl Sync for TempoTransaction
impl Unpin for TempoTransaction
impl UnwindSafe for TempoTransaction
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv 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<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<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
impl<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
§fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
TxEnv] from a transaction and a sender address.§impl<TxEnv, T> FromTxWithEncoded<&T> for TxEnvwhere
TxEnv: FromTxWithEncoded<T>,
impl<TxEnv, T> FromTxWithEncoded<&T> for TxEnvwhere
TxEnv: FromTxWithEncoded<T>,
§fn from_encoded_tx(tx: &&T, sender: Address, encoded: Bytes) -> TxEnv
fn from_encoded_tx(tx: &&T, sender: Address, encoded: Bytes) -> TxEnv
TxEnv] from a transaction, its sender, and encoded transaction bytes.§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> 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<ConsensusTx, RpcTx> IntoRpcTx<RpcTx> for ConsensusTxwhere
ConsensusTx: Transaction,
RpcTx: FromConsensusTx<ConsensusTx>,
<RpcTx as FromConsensusTx<ConsensusTx>>::Err: Debug,
impl<ConsensusTx, RpcTx> IntoRpcTx<RpcTx> for ConsensusTxwhere
ConsensusTx: Transaction,
RpcTx: FromConsensusTx<ConsensusTx>,
<RpcTx as FromConsensusTx<ConsensusTx>>::Err: Debug,
§type TxInfo = <RpcTx as FromConsensusTx<ConsensusTx>>::TxInfo
type TxInfo = <RpcTx as FromConsensusTx<ConsensusTx>>::TxInfo
TransactionInfo] in a wrapper that carries some
implementation specific extra information.§fn into_rpc_tx(
self,
signer: Address,
tx_info: <ConsensusTx as IntoRpcTx<RpcTx>>::TxInfo,
) -> Result<RpcTx, <ConsensusTx as IntoRpcTx<RpcTx>>::Err>
fn into_rpc_tx( self, signer: Address, tx_info: <ConsensusTx as IntoRpcTx<RpcTx>>::TxInfo, ) -> Result<RpcTx, <ConsensusTx as IntoRpcTx<RpcTx>>::Err>
self with signer and tx_info. See [IntoRpcTx]
for details.§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> SerdeBincodeCompat for Twhere
T: RlpBincode + 'static,
impl<T> SerdeBincodeCompat for Twhere
T: RlpBincode + 'static,
§type BincodeRepr<'a> = Bytes
type BincodeRepr<'a> = Bytes
§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.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<A> ArbInterop for A
impl<'de, T> BorrowedRpcObject<'de> for Twhere
T: RpcBorrow<'de> + RpcSend,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> FullTransaction for Twhere
T: Transaction + MaybeCompact,
impl<T> MaybeCompact for Twhere
T: Compact,
impl<T> MaybeDebug for Twhere
T: Debug,
impl<T> MaybeSerde for Twhere
T: Serialize + for<'de> Deserialize<'de>,
impl<T> MaybeSerdeBincodeCompat for Twhere
T: SerdeBincodeCompat,
impl<'de, T> RpcBorrow<'de> for T
impl<T> RpcObject for Twhere
T: RpcSend + RpcRecv,
impl<T> RpcRecv for T
impl<T> RpcSend for T
impl<T> Transaction for T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 528 bytes