pub struct ReadApi { /* private fields */ }
Expand description
The main read API structure with functions for retrieving data about different objects and transactions
Implementations§
source§impl ReadApi
impl ReadApi
sourcepub async fn get_owned_objects(
&self,
address: SuiAddress,
query: Option<SuiObjectResponseQuery>,
cursor: Option<ObjectID>,
limit: Option<usize>,
) -> SuiRpcResult<ObjectsPage>
pub async fn get_owned_objects( &self, address: SuiAddress, query: Option<SuiObjectResponseQuery>, cursor: Option<ObjectID>, limit: Option<usize>, ) -> SuiRpcResult<ObjectsPage>
Return a paginated response with the objects owned by the given address, or an error upon failure.
Note that if the address owns more than QUERY_MAX_RESULT_LIMIT
objects (default is 50),
the pagination is not accurate, because previous page may have been updated when the next page is fetched.
§Examples
use sui_sdk::SuiClientBuilder;
use sui_types::base_types::SuiAddress;
use std::str::FromStr;
#[tokio::main]
async fn main() -> Result<(), anyhow::Error> {
let sui = SuiClientBuilder::default().build_localnet().await?;
let address = SuiAddress::from_str("0x0000....0000")?;
let owned_objects = sui
.read_api()
.get_owned_objects(address, None, None, None)
.await?;
Ok(())
}
sourcepub async fn get_dynamic_fields(
&self,
object_id: ObjectID,
cursor: Option<ObjectID>,
limit: Option<usize>,
) -> SuiRpcResult<DynamicFieldPage>
pub async fn get_dynamic_fields( &self, object_id: ObjectID, cursor: Option<ObjectID>, limit: Option<usize>, ) -> SuiRpcResult<DynamicFieldPage>
Return a paginated response with the dynamic fields owned by the given [ObjectID], or an error upon failure.
The return type is a list of DynamicFieldInfo
objects, where the field name is always present,
represented as a Move Value
.
If the field is a dynamic field, returns the ID of the Field object (which contains both the name and the value). If the field is a dynamic object field, it returns the ID of the Object (the value of the field).
§Examples
use sui_sdk::SuiClientBuilder;
use sui_types::base_types::{ObjectID, SuiAddress};
use std::str::FromStr;
#[tokio::main]
async fn main() -> Result<(), anyhow::Error> {
let sui = SuiClientBuilder::default().build_localnet().await?;
let address = SuiAddress::from_str("0x0000....0000")?;
let owned_objects = sui
.read_api()
.get_owned_objects(address, None, None, None)
.await?;
// this code example assumes that there are previous owned objects
let object = owned_objects.data.get(0).expect(&format!(
"No owned objects for this address {}",
address
));
let object_data = object.data.as_ref().expect(&format!(
"No object data for this SuiObjectResponse {:?}",
object
));
let object_id = object_data.object_id;
let dynamic_fields = sui
.read_api()
.get_dynamic_fields(object_id, None, None)
.await?;
Ok(())
}
sourcepub async fn get_dynamic_field_object(
&self,
parent_object_id: ObjectID,
name: DynamicFieldName,
) -> SuiRpcResult<SuiObjectResponse>
pub async fn get_dynamic_field_object( &self, parent_object_id: ObjectID, name: DynamicFieldName, ) -> SuiRpcResult<SuiObjectResponse>
Return the dynamic field object information for a specified object.
sourcepub async fn try_get_parsed_past_object(
&self,
object_id: ObjectID,
version: SequenceNumber,
options: SuiObjectDataOptions,
) -> SuiRpcResult<SuiPastObjectResponse>
pub async fn try_get_parsed_past_object( &self, object_id: ObjectID, version: SequenceNumber, options: SuiObjectDataOptions, ) -> SuiRpcResult<SuiPastObjectResponse>
Return a parsed past object for the provided [ObjectID] and version, or an error upon failure.
An object’s version increases (though it is not guaranteed that it increases always by 1) when the object is mutated. A past object can be used to understand how the object changed over time, i.e. what was the total balance at a specific version.
§Examples
use sui_sdk::SuiClientBuilder;
use sui_types::base_types::{ObjectID, SuiAddress};
use sui_json_rpc_types::SuiObjectDataOptions;
use std::str::FromStr;
#[tokio::main]
async fn main() -> Result<(), anyhow::Error> {
let sui = SuiClientBuilder::default().build_localnet().await?;
let address = SuiAddress::from_str("0x0000....0000")?;
let owned_objects = sui
.read_api()
.get_owned_objects(address, None, None, None)
.await?;
// this code example assumes that there are previous owned objects
let object = owned_objects.data.get(0).expect(&format!(
"No owned objects for this address {}",
address
));
let object_data = object.data.as_ref().expect(&format!(
"No object data for this SuiObjectResponse {:?}",
object
));
let object_id = object_data.object_id;
let version = object_data.version;
let past_object = sui
.read_api()
.try_get_parsed_past_object(
object_id,
version,
SuiObjectDataOptions {
show_type: true,
show_owner: true,
show_previous_transaction: true,
show_display: true,
show_content: true,
show_bcs: true,
show_storage_rebate: true,
},
)
.await?;
Ok(())
}
sourcepub async fn try_multi_get_parsed_past_object(
&self,
past_objects: Vec<SuiGetPastObjectRequest>,
options: SuiObjectDataOptions,
) -> SuiRpcResult<Vec<SuiPastObjectResponse>>
pub async fn try_multi_get_parsed_past_object( &self, past_objects: Vec<SuiGetPastObjectRequest>, options: SuiObjectDataOptions, ) -> SuiRpcResult<Vec<SuiPastObjectResponse>>
Return a list of [SuiPastObjectResponse] objects, or an error upon failure.
See this function for more details about past objects.
§Examples
use sui_sdk::SuiClientBuilder;
use sui_types::base_types::{ObjectID, SuiAddress};
use sui_json_rpc_types::{SuiObjectDataOptions, SuiGetPastObjectRequest};
use std::str::FromStr;
#[tokio::main]
async fn main() -> Result<(), anyhow::Error> {
let sui = SuiClientBuilder::default().build_localnet().await?;
let address = SuiAddress::from_str("0x0000....0000")?;
let owned_objects = sui
.read_api()
.get_owned_objects(address, None, None, None)
.await?;
// this code example assumes that there are previous owned objects
let object = owned_objects.data.get(0).expect(&format!(
"No owned objects for this address {}",
address
));
let object_data = object.data.as_ref().expect(&format!(
"No object data for this SuiObjectResponse {:?}",
object
));
let object_id = object_data.object_id;
let version = object_data.version;
let past_object = sui
.read_api()
.try_get_parsed_past_object(
object_id,
version,
SuiObjectDataOptions {
show_type: true,
show_owner: true,
show_previous_transaction: true,
show_display: true,
show_content: true,
show_bcs: true,
show_storage_rebate: true,
},
)
.await?;
let past_object = past_object.into_object()?;
let multi_past_object = sui
.read_api()
.try_multi_get_parsed_past_object(
vec![SuiGetPastObjectRequest {
object_id: past_object.object_id,
version: past_object.version,
}],
SuiObjectDataOptions {
show_type: true,
show_owner: true,
show_previous_transaction: true,
show_display: true,
show_content: true,
show_bcs: true,
show_storage_rebate: true,
},
)
.await?;
Ok(())
}
sourcepub async fn get_object_with_options(
&self,
object_id: ObjectID,
options: SuiObjectDataOptions,
) -> SuiRpcResult<SuiObjectResponse>
pub async fn get_object_with_options( &self, object_id: ObjectID, options: SuiObjectDataOptions, ) -> SuiRpcResult<SuiObjectResponse>
Return a [SuiObjectResponse] based on the provided [ObjectID] and [SuiObjectDataOptions], or an error upon failure.
The [SuiObjectResponse] contains two fields:
data
for the object’s data (see SuiObjectData),error
for the error (if any) (see SuiObjectResponseError).
§Examples
use sui_sdk::SuiClientBuilder;
use sui_types::base_types::SuiAddress;
use sui_json_rpc_types::SuiObjectDataOptions;
use std::str::FromStr;
#[tokio::main]
async fn main() -> Result<(), anyhow::Error> {
let sui = SuiClientBuilder::default().build_localnet().await?;
let address = SuiAddress::from_str("0x0000....0000")?;
let owned_objects = sui
.read_api()
.get_owned_objects(address, None, None, None)
.await?;
// this code example assumes that there are previous owned objects
let object = owned_objects.data.get(0).expect(&format!(
"No owned objects for this address {}",
address
));
let object_data = object.data.as_ref().expect(&format!(
"No object data for this SuiObjectResponse {:?}",
object
));
let object_id = object_data.object_id;
let object = sui.read_api().get_object_with_options(object_id,
SuiObjectDataOptions {
show_type: true,
show_owner: true,
show_previous_transaction: true,
show_display: true,
show_content: true,
show_bcs: true,
show_storage_rebate: true,
},
).await?;
Ok(())
}
sourcepub async fn multi_get_object_with_options(
&self,
object_ids: Vec<ObjectID>,
options: SuiObjectDataOptions,
) -> SuiRpcResult<Vec<SuiObjectResponse>>
pub async fn multi_get_object_with_options( &self, object_ids: Vec<ObjectID>, options: SuiObjectDataOptions, ) -> SuiRpcResult<Vec<SuiObjectResponse>>
Return a list of [SuiObjectResponse] from the given vector of [ObjectID]s and [SuiObjectDataOptions], or an error upon failure.
If only one object is needed, use the get_object_with_options function instead.
§Examples
use sui_sdk::SuiClientBuilder;
use sui_types::base_types::SuiAddress;
use sui_json_rpc_types::SuiObjectDataOptions;
use std::str::FromStr;
#[tokio::main]
async fn main() -> Result<(), anyhow::Error> {
let sui = SuiClientBuilder::default().build_localnet().await?;
let address = SuiAddress::from_str("0x0000....0000")?;
let owned_objects = sui
.read_api()
.get_owned_objects(address, None, None, None)
.await?;
// this code example assumes that there are previous owned objects
let object = owned_objects.data.get(0).expect(&format!(
"No owned objects for this address {}",
address
));
let object_data = object.data.as_ref().expect(&format!(
"No object data for this SuiObjectResponse {:?}",
object
));
let object_id = object_data.object_id;
let object_ids = vec![object_id]; // and other object ids
let object = sui.read_api().multi_get_object_with_options(object_ids,
SuiObjectDataOptions {
show_type: true,
show_owner: true,
show_previous_transaction: true,
show_display: true,
show_content: true,
show_bcs: true,
show_storage_rebate: true,
},
).await?;
Ok(())
}
sourcepub async fn get_move_object_bcs(
&self,
object_id: ObjectID,
) -> SuiRpcResult<Vec<u8>>
pub async fn get_move_object_bcs( &self, object_id: ObjectID, ) -> SuiRpcResult<Vec<u8>>
Return An object’s bcs content Vec<u8>
based on the provided [ObjectID], or an error upon failure.
sourcepub async fn get_total_transaction_blocks(&self) -> SuiRpcResult<u64>
pub async fn get_total_transaction_blocks(&self) -> SuiRpcResult<u64>
Return the total number of transaction blocks known to server, or an error upon failure.
§Examples
use sui_sdk::SuiClientBuilder;
#[tokio::main]
async fn main() -> Result<(), anyhow::Error> {
let sui = SuiClientBuilder::default().build_localnet().await?;
let total_transaction_blocks = sui
.read_api()
.get_total_transaction_blocks()
.await?;
Ok(())
}
sourcepub async fn get_transaction_with_options(
&self,
digest: TransactionDigest,
options: SuiTransactionBlockResponseOptions,
) -> SuiRpcResult<SuiTransactionBlockResponse>
pub async fn get_transaction_with_options( &self, digest: TransactionDigest, options: SuiTransactionBlockResponseOptions, ) -> SuiRpcResult<SuiTransactionBlockResponse>
Return a transaction and its effects in a [SuiTransactionBlockResponse] based on its [TransactionDigest], or an error upon failure.
sourcepub async fn multi_get_transactions_with_options(
&self,
digests: Vec<TransactionDigest>,
options: SuiTransactionBlockResponseOptions,
) -> SuiRpcResult<Vec<SuiTransactionBlockResponse>>
pub async fn multi_get_transactions_with_options( &self, digests: Vec<TransactionDigest>, options: SuiTransactionBlockResponseOptions, ) -> SuiRpcResult<Vec<SuiTransactionBlockResponse>>
Return a list of [SuiTransactionBlockResponse] based on the given vector of [TransactionDigest], or an error upon failure.
If only one transaction data is needed, use the get_transaction_with_options function instead.
sourcepub async fn get_committee_info(
&self,
epoch: Option<BigInt<u64>>,
) -> SuiRpcResult<SuiCommittee>
pub async fn get_committee_info( &self, epoch: Option<BigInt<u64>>, ) -> SuiRpcResult<SuiCommittee>
Return the [SuiCommittee] information for the provided epoch
, or an error upon failure.
The [SuiCommittee] contains the validators list and their information (name and stakes).
The argument epoch
is either a known epoch id or None
for the current epoch.
§Examples
use sui_sdk::SuiClientBuilder;
#[tokio::main]
async fn main() -> Result<(), anyhow::Error> {
let sui = SuiClientBuilder::default().build_localnet().await?;
let committee_info = sui
.read_api()
.get_committee_info(None)
.await?;
Ok(())
}
sourcepub async fn query_transaction_blocks(
&self,
query: SuiTransactionBlockResponseQuery,
cursor: Option<TransactionDigest>,
limit: Option<usize>,
descending_order: bool,
) -> SuiRpcResult<TransactionBlocksPage>
pub async fn query_transaction_blocks( &self, query: SuiTransactionBlockResponseQuery, cursor: Option<TransactionDigest>, limit: Option<usize>, descending_order: bool, ) -> SuiRpcResult<TransactionBlocksPage>
Return a paginated response with all transaction blocks information, or an error upon failure.
sourcepub async fn get_chain_identifier(&self) -> SuiRpcResult<String>
pub async fn get_chain_identifier(&self) -> SuiRpcResult<String>
Return the first four bytes of the chain’s genesis checkpoint digest, or an error upon failure.
sourcepub async fn get_checkpoint(&self, id: CheckpointId) -> SuiRpcResult<Checkpoint>
pub async fn get_checkpoint(&self, id: CheckpointId) -> SuiRpcResult<Checkpoint>
Return a checkpoint, or an error upon failure.
A Sui checkpoint is a sequence of transaction sets that a quorum of validators agree upon as having been executed within the Sui system.
sourcepub async fn get_checkpoints(
&self,
cursor: Option<BigInt<u64>>,
limit: Option<usize>,
descending_order: bool,
) -> SuiRpcResult<CheckpointPage>
pub async fn get_checkpoints( &self, cursor: Option<BigInt<u64>>, limit: Option<usize>, descending_order: bool, ) -> SuiRpcResult<CheckpointPage>
Return a paginated list of checkpoints, or an error upon failure.
sourcepub async fn get_latest_checkpoint_sequence_number(
&self,
) -> SuiRpcResult<CheckpointSequenceNumber>
pub async fn get_latest_checkpoint_sequence_number( &self, ) -> SuiRpcResult<CheckpointSequenceNumber>
Return the sequence number of the latest checkpoint that has been executed, or an error upon failure.
sourcepub fn get_transactions_stream(
&self,
query: SuiTransactionBlockResponseQuery,
cursor: Option<TransactionDigest>,
descending_order: bool,
) -> impl Stream<Item = SuiTransactionBlockResponse> + '_
pub fn get_transactions_stream( &self, query: SuiTransactionBlockResponseQuery, cursor: Option<TransactionDigest>, descending_order: bool, ) -> impl Stream<Item = SuiTransactionBlockResponse> + '_
Return a stream of [SuiTransactionBlockResponse], or an error upon failure.
sourcepub async fn subscribe_transaction(
&self,
filter: TransactionFilter,
) -> SuiRpcResult<impl Stream<Item = SuiRpcResult<SuiTransactionBlockEffects>>>
pub async fn subscribe_transaction( &self, filter: TransactionFilter, ) -> SuiRpcResult<impl Stream<Item = SuiRpcResult<SuiTransactionBlockEffects>>>
Subscribe to a stream of transactions.
This is only available through WebSockets.
sourcepub async fn get_normalized_move_modules_by_package(
&self,
package: ObjectID,
) -> SuiRpcResult<BTreeMap<String, SuiMoveNormalizedModule>>
pub async fn get_normalized_move_modules_by_package( &self, package: ObjectID, ) -> SuiRpcResult<BTreeMap<String, SuiMoveNormalizedModule>>
Return a map consisting of the move package name and the normalized module, or an error upon failure.
sourcepub async fn get_reference_gas_price(&self) -> SuiRpcResult<u64>
pub async fn get_reference_gas_price(&self) -> SuiRpcResult<u64>
Return the reference gas price, or an error upon failure.
sourcepub async fn dry_run_transaction_block(
&self,
tx: TransactionData,
) -> SuiRpcResult<DryRunTransactionBlockResponse>
pub async fn dry_run_transaction_block( &self, tx: TransactionData, ) -> SuiRpcResult<DryRunTransactionBlockResponse>
Dry run a transaction block given the provided transaction data. Returns an error upon failure.
Simulate running the transaction, including all standard checks, without actually running it. This is useful for estimating the gas fees of a transaction before executing it. You can also use it to identify any side-effects of a transaction before you execute it on the network.
sourcepub async fn dev_inspect_transaction_block(
&self,
sender_address: SuiAddress,
tx: TransactionKind,
gas_price: Option<BigInt<u64>>,
epoch: Option<BigInt<u64>>,
additional_args: Option<DevInspectArgs>,
) -> SuiRpcResult<DevInspectResults>
pub async fn dev_inspect_transaction_block( &self, sender_address: SuiAddress, tx: TransactionKind, gas_price: Option<BigInt<u64>>, epoch: Option<BigInt<u64>>, additional_args: Option<DevInspectArgs>, ) -> SuiRpcResult<DevInspectResults>
Return the inspection of the transaction block, or an error upon failure.
Use this function to inspect the current state of the network by running a programmable transaction block without committing its effects on chain. Unlike dry_run_transaction_block, dev inspect will not validate whether the transaction block would succeed or fail under normal circumstances, e.g.:
- Transaction inputs are not checked for ownership (i.e. you can construct calls involving objects you do not own).
- Calls are not checked for visibility (you can call private functions on modules)
- Inputs of any type can be constructed and passed in, (including Coins and other objects that would usually need to be constructed with a move call).
- Function returns do not need to be used, even if they do not have
drop
.
Dev inspect’s output includes a breakdown of results returned by every transaction in the block, as well as the transaction’s effects.
To run an accurate simulation of a transaction and understand whether it will successfully validate and run, use the dry_run_transaction_block function instead.
sourcepub async fn get_protocol_config(
&self,
version: Option<BigInt<u64>>,
) -> SuiRpcResult<ProtocolConfigResponse>
pub async fn get_protocol_config( &self, version: Option<BigInt<u64>>, ) -> SuiRpcResult<ProtocolConfigResponse>
Return the protocol config, or an error upon failure.
pub async fn try_get_object_before_version( &self, object_id: ObjectID, version: SequenceNumber, ) -> SuiRpcResult<SuiPastObjectResponse>
Trait Implementations§
source§impl DataReader for ReadApi
impl DataReader for ReadApi
source§fn get_reference_gas_price<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_reference_gas_price<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<u64, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns the reference gas price as a u64 or an error otherwise
fn get_owned_objects<'life0, 'async_trait>(
&'life0 self,
address: SuiAddress,
object_type: StructTag,
) -> Pin<Box<dyn Future<Output = Result<Vec<ObjectInfo>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_object_with_options<'life0, 'async_trait>(
&'life0 self,
object_id: ObjectID,
options: SuiObjectDataOptions,
) -> Pin<Box<dyn Future<Output = Result<SuiObjectResponse, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Auto Trait Implementations§
impl Freeze for ReadApi
impl !RefUnwindSafe for ReadApi
impl Send for ReadApi
impl Sync for ReadApi
impl Unpin for ReadApi
impl !UnwindSafe for ReadApi
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self
to type T
. The semantics of numeric casting with the as
operator are followed, so <T as As>::as_::<U>
can be used in the same way as T as U
for numeric conversions. Read more§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> Conv for T
impl<T> Conv for T
§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>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a Request
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
§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> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§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.