Struct gsdk::Api

source ·
pub struct Api { /* private fields */ }
Expand description

Gear api wrapper.

Implementations§

source§

impl Api

source

pub async fn new(uri: impl Into<Option<&str>>) -> Result<Self>

Create new API client.

source

pub fn builder() -> ApiBuilder

Resolve api builder

source

pub fn rpc(&self) -> Rpc

Gear RPC Client

source

pub async fn subscribe_blocks(&self) -> Result<Blocks>

Subscribe all blocks

let api = Api::new(None).await?;
let blocks = api.subscribe_blocks().await?;

while let Ok(block) = blocks.next().await {
  // ...
}
source

pub async fn subscribe_finalized_blocks(&self) -> Result<Blocks>

Subscribe finalized blocks

Same as subscribe_blocks but only finalized blocks.

source

pub async fn events(&self) -> Result<Events>

Subscribe all events.

let api = Api::new(None).await?;
let events = api.events().await?;

while let Ok(evs) = events.next().await {
  // ...
}
source

pub async fn events_of(&self, tx: &TxInBlock) -> Result<Vec<Event>>

Parse events of an extrinsic

source

pub async fn finalized_events(&self) -> Result<Events>

Subscribe finalized events

Same as events but only finalized events.

source

pub fn signer(self, suri: &str, passwd: Option<&str>) -> Result<Signer>

New signer from api

source§

impl Api

source

pub fn gas_limit(&self) -> Result<u64>

pallet gas constants

Get gas limit.

source

pub fn expected_block_time(&self) -> Result<u64>

pallet babe constant

Get expected block time.

source§

impl Api

source

pub async fn capture_dispatch_info( &self, tx: &TxInBlock<GearConfig, OnlineClient<GearConfig>>, ) -> Result<TxEvents<GearConfig>>

Capture the dispatch info of any extrinsic and display the weight spent

source

pub fn capture_weight_info(details: &EventDetails<GearConfig>) -> Result<()>

Parse transaction fee from InBlockEvents

source§

impl Api

source

pub async fn calculate_create_gas( &self, origin: H256, code_id: CodeId, payload: Vec<u8>, value: u128, allow_other_panics: bool, at: Option<H256>, ) -> Result<GasInfo>

gear_calculateInitCreateGas

source

pub async fn calculate_upload_gas( &self, origin: H256, code: Vec<u8>, payload: Vec<u8>, value: u128, allow_other_panics: bool, at: Option<H256>, ) -> Result<GasInfo>

gear_calculateInitUploadGas

source

pub async fn calculate_handle_gas( &self, origin: H256, destination: ProgramId, payload: Vec<u8>, value: u128, allow_other_panics: bool, at: Option<H256>, ) -> Result<GasInfo>

gear_calculateHandleGas

source

pub async fn calculate_reply_gas( &self, origin: H256, message_id: MessageId, payload: Vec<u8>, value: u128, allow_other_panics: bool, at: Option<H256>, ) -> Result<GasInfo>

gear_calculateReplyGas

source

pub async fn read_meta_hash(&self, pid: H256, at: Option<H256>) -> Result<H256>

gear_meta_hash

source

pub async fn read_state( &self, pid: H256, payload: Vec<u8>, at: Option<H256>, ) -> Result<String>

gear_readState

source

pub async fn read_state_using_wasm( &self, pid: H256, payload: Vec<u8>, method: &str, wasm: Vec<u8>, args: Option<Vec<u8>>, at: Option<H256>, ) -> Result<String>

gear_readStateUsingWasm

source

pub async fn runtime_wasm_blob_version( &self, at: Option<H256>, ) -> Result<String>

runtime_wasmBlobVersion

source

pub async fn calculate_reply_for_handle( &self, origin: H256, destination: ProgramId, payload: Vec<u8>, gas_limit: u64, value: u128, at: Option<H256>, ) -> Result<ReplyInfo>

gear_calculateReplyForHandle

source§

impl Api

source

pub async fn fetch_storage_at<'a, Addr, Value>( &self, address: &'a Addr, block_hash: impl Into<Option<H256>>, ) -> Result<Value>
where Addr: Address<IsFetchable = Yes, IsDefaultable = Yes, Target = DecodedValueThunk> + 'a, Value: Decode,

Shortcut for fetching storage at specified block.

§You may not need this.

Read the docs of Api to checkout the wrapped storage queries, we need this function only when we want to execute a query which has not been wrapped in gsdk.

§Example
use gsdk::{Api, metadata::storage::SystemStorage};

let api = Api::new(None);

{
    let address = Api::storage(SystemStorage::Number);
    let bn = api.fetch_storage(address).await?;
}

// The code above equals to the following code due to
// the implemented storage query `number` in `Api`.

{
    let bn = api.number().await?;
}
source

pub async fn fetch_storage<'a, Addr, Value>( &self, address: &'a Addr, ) -> Result<Value>
where Addr: Address<IsFetchable = Yes, IsDefaultable = Yes, Target = DecodedValueThunk> + 'a, Value: Decode,

Shortcut for fetching storage.

§You may not need this.

Read the docs of Api to checkout the wrapped storage queries, we need this function only when we want to execute a query which has not been wrapped in gsdk.

§Example
use gsdk::{Api, metadata::storage::SystemStorage};

let api = Api::new(None);

{
    let address = Api::storage(SystemStorage::Number);
    let bn = api.fetch_storage(address).await?;
}

// The code above equals to the following code due to
// the implemented storage query `number` in `Api`.

{
    let bn = api.number().await?;
}
source

pub async fn program_pages(&self, program_id: ProgramId) -> Result<GearPages>

Get program pages from program id.

source§

impl Api

source

pub async fn info_at( &self, address: &str, block_hash: impl Into<Option<H256>>, ) -> Result<AccountInfo<u32, AccountData<u128>>>

Get account info by address at specified block.

source

pub async fn info( &self, address: &str, ) -> Result<AccountInfo<u32, AccountData<u128>>>

Get account info by address.

source

pub async fn number(&self) -> Result<u32>

Get block number.

source

pub async fn get_balance(&self, address: &str) -> Result<u128>

Get balance by account address.

source

pub async fn get_events_at( &self, block_hash: impl Into<Option<H256>>, ) -> Result<Vec<RuntimeEvent>>

Get events at specified block.

source

pub async fn get_events(&self) -> Result<Vec<RuntimeEvent>>

Get events.

source§

impl Api

source

pub async fn block_timestamp(&self, block_hash: Option<H256>) -> Result<u64>

Return a timestamp of the block.

source§

impl Api

source

pub async fn validators(&self) -> Result<Vec<AccountId32>>

Get all validators from pallet_session.

source§

impl Api

source

pub async fn total_issuance_at( &self, block_hash: impl Into<Option<H256>>, ) -> Result<u64>

Get value of gas total issuance at specified block.

source

pub async fn total_issuance(&self) -> Result<u64>

Get value of gas total issuance.

source

pub async fn gas_nodes_at( &self, gas_node_ids: &impl AsRef<[GearGasNodeId]>, block_hash: impl Into<Option<H256>>, ) -> Result<Vec<(GearGasNodeId, GearGasNode)>>

Get Gear gas nodes by their ids at specified block.

source

pub async fn gas_nodes( &self, gas_node_ids: &impl AsRef<[GearGasNodeId]>, ) -> Result<Vec<(GearGasNodeId, GearGasNode)>>

Get Gear gas nodes by their ids.

source§

impl Api

source

pub async fn bank_info_at( &self, account_id: AccountId32, block_hash: impl Into<Option<H256>>, ) -> Result<BankAccount<u128>>

Get Gear bank account data at specified block.

source

pub async fn bank_info( &self, account_id: AccountId32, ) -> Result<BankAccount<u128>>

Get Gear bank account data.

source§

impl Api

source

pub async fn execute_inherent(&self) -> Result<bool>

Check whether the message queue processing is stopped or not.

source

pub async fn gear_block_number( &self, block_hash: Option<H256>, ) -> Result<BlockNumber>

Get gear block number.

source§

impl Api

source

pub async fn original_code_storage_at( &self, code_id: CodeId, block_hash: impl Into<Option<H256>>, ) -> Result<Vec<u8>>

Get original code by its CodeId at specified block.

source

pub async fn original_code_storage(&self, code_id: CodeId) -> Result<Vec<u8>>

Get original code by its CodeId.

source

pub async fn code_storage_at( &self, code_id: CodeId, block_hash: impl Into<Option<H256>>, ) -> Result<InstrumentedCode>

Get InstrumentedCode by its `CodeId at specified block.

source

pub async fn code_storage(&self, code_id: CodeId) -> Result<InstrumentedCode>

Get InstrumentedCode by its `CodeId.

source

pub async fn code_len_storage_at( &self, code_id: CodeId, block_hash: impl Into<Option<H256>>, ) -> Result<u32>

Get InstrumentedCode length by its CodeId at specified block.

source

pub async fn code_len_storage(&self, code_id: CodeId) -> Result<u32>

Get InstrumentedCode length by its CodeId.

source

pub async fn gprog_at( &self, program_id: ProgramId, block_hash: impl Into<Option<H256>>, ) -> Result<ActiveProgram<BlockNumber>>

Get active program from program id at specified block.

source

pub async fn gprog( &self, program_id: ProgramId, ) -> Result<ActiveProgram<BlockNumber>>

Get active program from program id.

source

pub async fn gpages_at( &self, program_id: ProgramId, memory_infix: Option<u32>, block_hash: impl Into<Option<H256>>, ) -> Result<GearPages>

Get pages of active program at specified block.

source

pub async fn gpages( &self, program_id: ProgramId, memory_infix: Option<u32>, ) -> Result<GearPages>

Get pages of active program.

source

pub async fn specified_gpages_at( &self, program_id: ProgramId, memory_infix: Option<u32>, page_numbers: impl Iterator<Item = u32>, block_hash: impl Into<Option<H256>>, ) -> Result<GearPages>

Get pages of active program at specified block.

source

pub async fn specified_gpages( &self, program_id: ProgramId, memory_infix: Option<u32>, page_numbers: impl Iterator<Item = u32>, ) -> Result<GearPages>

Get pages of active program.

source§

impl Api

source

pub async fn get_mailbox_account_message( &self, account_id: AccountId32, message_id: impl AsRef<[u8]>, ) -> Result<Option<(UserStoredMessage, Interval<u32>)>>

Get a message identified by message_id from the account_id’s mailbox.

source

pub async fn mailbox( &self, account_id: Option<AccountId32>, count: u32, ) -> Result<Vec<(UserStoredMessage, Interval<u32>)>>

Get all mailbox messages or for the provided address.

source§

impl Api

source

pub fn cmp_gas_limit(&self, gas: u64) -> Result<u64>

compare gas limit

source

pub fn decode_error(&self, dispatch_error: DispatchError) -> Error

Decode DispatchError to subxt::error::Error.

source

pub async fn get_storage( &self, block_hash: Option<H256>, ) -> Result<Storage<GearConfig, OnlineClient<GearConfig>>>

Get storage from optional block hash.

source

pub fn storage<T: StorageInfo, Keys: StorageKey>( storage: T, keys: Keys, ) -> DynamicAddress<Keys>

Get the storage address from storage info.

source

pub fn storage_root<T: StorageInfo>(storage: T) -> DynamicAddress<Vec<Value>>

Get the storage root address from storage info.

Methods from Deref<Target = OnlineClient<GearConfig>>§

pub fn updater(&self) -> ClientRuntimeUpdater<T>

Create an object which can be used to keep the runtime up to date in a separate thread.

§Example
use subxt::{ OnlineClient, PolkadotConfig };

let client = OnlineClient::<PolkadotConfig>::new().await.unwrap();

// high level API.

let update_task = client.updater();
tokio::spawn(async move {
    update_task.perform_runtime_updates().await;
});


// low level API.

let updater = client.updater();
tokio::spawn(async move {
    let mut update_stream = updater.runtime_updates().await.unwrap();

    while let Some(Ok(update)) = update_stream.next().await {
        let version = update.runtime_version().spec_version;

        match updater.apply_update(update) {
            Ok(()) => {
                println!("Upgrade to version: {} successful", version)
            }
            Err(e) => {
               println!("Upgrade to version {} failed {:?}", version, e);
            }
       };
    }
});

pub fn metadata(&self) -> Metadata

Return the [Metadata] used in this client.

pub fn set_metadata(&self, metadata: impl Into<Metadata>)

Change the [Metadata] used in this client.

§Warning

Setting custom metadata may leave Subxt unable to work with certain blocks, subscribe to latest blocks or submit valid transactions.

pub fn genesis_hash(&self) -> <T as Config>::Hash

Return the genesis hash.

pub fn set_genesis_hash(&self, genesis_hash: <T as Config>::Hash)

Change the genesis hash used in this client.

§Warning

Setting a custom genesis hash may leave Subxt unable to submit valid transactions.

pub fn runtime_version(&self) -> RuntimeVersion

Return the runtime version.

pub fn set_runtime_version(&self, runtime_version: RuntimeVersion)

Change the [RuntimeVersion] used in this client.

§Warning

Setting a custom runtime version may leave Subxt unable to submit valid transactions.

pub fn backend(&self) -> &(dyn Backend<T> + 'static)

Return an RPC client to make raw requests with.

pub fn offline(&self) -> OfflineClient<T>

Return an offline client with the same configuration as this.

pub fn tx(&self) -> TxClient<T, OnlineClient<T>>

Work with transactions.

pub fn events(&self) -> EventsClient<T, OnlineClient<T>>

Work with events.

pub fn storage(&self) -> StorageClient<T, OnlineClient<T>>

Work with storage.

pub fn constants(&self) -> ConstantsClient<T, OnlineClient<T>>

Access constants.

pub fn custom_values(&self) -> CustomValuesClient<T, OnlineClient<T>>

Access custom types.

pub fn blocks(&self) -> BlocksClient<T, OnlineClient<T>>

Work with blocks.

pub fn runtime_api(&self) -> RuntimeApiClient<T, OnlineClient<T>>

Work with runtime API.

Trait Implementations§

source§

impl Clone for Api

source§

fn clone(&self) -> Api

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Deref for Api

§

type Target = OnlineClient<GearConfig>

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl DerefMut for Api

source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.

Auto Trait Implementations§

§

impl Freeze for Api

§

impl !RefUnwindSafe for Api

§

impl Send for Api

§

impl Sync for Api

§

impl Unpin for Api

§

impl !UnwindSafe for Api

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
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> CheckedConversion for T

§

fn checked_from<T>(t: T) -> Option<Self>
where Self: TryFrom<T>,

Convert from a value of T into an equivalent instance of Option<Self>. Read more
§

fn checked_into<T>(self) -> Option<T>
where Self: TryInto<T>,

Consume self to return Some equivalent value of Option<T>. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> Downcast for T
where T: Any,

§

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

Convert 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>

Convert 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)

Convert &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)

Convert &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
where T: Any + Send + Sync,

§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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> 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.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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, Outer> IsWrappedBy<Outer> for T
where Outer: AsRef<T> + AsMut<T> + From<T>, T: From<Outer>,

§

fn from_ref(outer: &Outer) -> &T

Get a reference to the inner from the outer.

§

fn from_mut(outer: &mut Outer) -> &mut T

Get a mutable reference to the inner from the outer.

§

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.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

fn saturated_from<T>(t: T) -> Self
where Self: UniqueSaturatedFrom<T>,

Convert from a value of T into an equivalent instance of Self. Read more
§

fn saturated_into<T>(self) -> T
where Self: UniqueSaturatedInto<T>,

Consume self to return an equivalent value of T. Read more
§

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.
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

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<S, T> UncheckedInto<T> for S
where T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where T: Bounded, S: TryInto<T>,

§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

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
§

impl<T> JsonSchemaMaybe for T

§

impl<T> MaybeSend for T
where T: Send,

§

impl<T> MaybeSend for T
where T: Send,