pub struct Cast<P> {
pub(crate) provider: P,
}Fields§
§provider: PImplementations§
Source§impl<P: Provider<AnyNetwork> + Clone + Unpin> Cast<P>
impl<P: Provider<AnyNetwork> + Clone + Unpin> Cast<P>
Sourcepub fn new(provider: P) -> Self
pub fn new(provider: P) -> Self
Creates a new Cast instance from the provided client
§Example
use alloy_provider::{ProviderBuilder, RootProvider, network::AnyNetwork};
use cast::Cast;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().connect("http://localhost:8545").await?;
let cast = Cast::new(provider);Sourcepub async fn call(
&self,
req: &WithOtherFields<TransactionRequest>,
func: Option<&Function>,
block: Option<BlockId>,
state_override: Option<StateOverride>,
block_override: Option<BlockOverrides>,
) -> Result<String>
pub async fn call( &self, req: &WithOtherFields<TransactionRequest>, func: Option<&Function>, block: Option<BlockId>, state_override: Option<StateOverride>, block_override: Option<BlockOverrides>, ) -> Result<String>
Makes a read-only call to the specified address
§Example
use alloy_primitives::{Address, U256, Bytes};
use alloy_rpc_types::{TransactionRequest, BlockOverrides, state::{StateOverride, AccountOverride}};
use alloy_serde::WithOtherFields;
use cast::Cast;
use alloy_provider::{RootProvider, ProviderBuilder, network::AnyNetwork};
use std::{str::FromStr, collections::HashMap};
use alloy_rpc_types::state::StateOverridesBuilder;
use alloy_sol_types::{sol, SolCall};
sol!(
function greeting(uint256 i) public returns (string);
);
let alloy_provider = ProviderBuilder::<_,_, AnyNetwork>::default().connect("http://localhost:8545").await?;;
let to = Address::from_str("0xB3C95ff08316fb2F2e3E52Ee82F8e7b605Aa1304")?;
let greeting = greetingCall { i: U256::from(5) }.abi_encode();
let bytes = Bytes::from_iter(greeting.iter());
let tx = TransactionRequest::default().to(to).input(bytes.into());
let tx = WithOtherFields::new(tx);
// Create state overrides
let mut state_override = StateOverride::default();
let mut account_override = AccountOverride::default();
account_override.balance = Some(U256::from(1000));
state_override.insert(to, account_override);
let state_override_object = StateOverridesBuilder::default().build();
let block_override_object = BlockOverrides::default();
let cast = Cast::new(alloy_provider);
let data = cast.call(&tx, None, None, Some(state_override_object), Some(block_override_object)).await?;
println!("{}", data);Sourcepub async fn access_list(
&self,
req: &WithOtherFields<TransactionRequest>,
block: Option<BlockId>,
) -> Result<String>
pub async fn access_list( &self, req: &WithOtherFields<TransactionRequest>, block: Option<BlockId>, ) -> Result<String>
Generates an access list for the specified transaction
§Example
use cast::{Cast};
use alloy_primitives::{Address, U256, Bytes};
use alloy_rpc_types::{TransactionRequest};
use alloy_serde::WithOtherFields;
use alloy_provider::{RootProvider, ProviderBuilder, network::AnyNetwork};
use std::str::FromStr;
use alloy_sol_types::{sol, SolCall};
sol!(
function greeting(uint256 i) public returns (string);
);
let provider = ProviderBuilder::<_,_, AnyNetwork>::default().connect("http://localhost:8545").await?;;
let to = Address::from_str("0xB3C95ff08316fb2F2e3E52Ee82F8e7b605Aa1304")?;
let greeting = greetingCall { i: U256::from(5) }.abi_encode();
let bytes = Bytes::from_iter(greeting.iter());
let tx = TransactionRequest::default().to(to).input(bytes.into());
let tx = WithOtherFields::new(tx);
let cast = Cast::new(&provider);
let access_list = cast.access_list(&tx, None).await?;
println!("{}", access_list);pub async fn balance( &self, who: Address, block: Option<BlockId>, ) -> Result<U256>
Sourcepub async fn send(
&self,
tx: WithOtherFields<TransactionRequest>,
) -> Result<PendingTransactionBuilder<AnyNetwork>>
pub async fn send( &self, tx: WithOtherFields<TransactionRequest>, ) -> Result<PendingTransactionBuilder<AnyNetwork>>
Sends a transaction to the specified address
§Example
use cast::{Cast};
use alloy_primitives::{Address, U256, Bytes};
use alloy_serde::WithOtherFields;
use alloy_rpc_types::{TransactionRequest};
use alloy_provider::{RootProvider, ProviderBuilder, network::AnyNetwork};
use std::str::FromStr;
use alloy_sol_types::{sol, SolCall};
sol!(
function greet(string greeting) public;
);
let provider = ProviderBuilder::<_,_, AnyNetwork>::default().connect("http://localhost:8545").await?;;
let from = Address::from_str("0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045")?;
let to = Address::from_str("0xB3C95ff08316fb2F2e3E52Ee82F8e7b605Aa1304")?;
let greeting = greetCall { greeting: "hello".to_string() }.abi_encode();
let bytes = Bytes::from_iter(greeting.iter());
let gas = U256::from_str("200000").unwrap();
let value = U256::from_str("1").unwrap();
let nonce = U256::from_str("1").unwrap();
let tx = TransactionRequest::default().to(to).input(bytes.into()).from(from);
let tx = WithOtherFields::new(tx);
let cast = Cast::new(provider);
let data = cast.send(tx).await?;
println!("{:#?}", data);Sourcepub async fn publish(
&self,
raw_tx: String,
) -> Result<PendingTransactionBuilder<AnyNetwork>>
pub async fn publish( &self, raw_tx: String, ) -> Result<PendingTransactionBuilder<AnyNetwork>>
Publishes a raw transaction to the network
§Example
use alloy_provider::{ProviderBuilder, RootProvider, network::AnyNetwork};
use cast::Cast;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().connect("http://localhost:8545").await?;
let cast = Cast::new(provider);
let res = cast.publish("0x1234".to_string()).await?;
println!("{:?}", res);Sourcepub async fn send_sync(
&self,
tx: WithOtherFields<TransactionRequest>,
) -> Result<String>
pub async fn send_sync( &self, tx: WithOtherFields<TransactionRequest>, ) -> Result<String>
Sends a transaction and waits for receipt synchronously
Sourcepub(crate) fn format_receipt(
&self,
receipt: TransactionReceiptWithRevertReason,
field: Option<String>,
) -> Result<String>
pub(crate) fn format_receipt( &self, receipt: TransactionReceiptWithRevertReason, field: Option<String>, ) -> Result<String>
Helper method to format transaction receipts consistently
Sourcepub async fn block<B: Into<BlockId>>(
&self,
block: B,
full: bool,
fields: Vec<String>,
raw: bool,
) -> Result<String>
pub async fn block<B: Into<BlockId>>( &self, block: B, full: bool, fields: Vec<String>, raw: bool, ) -> Result<String>
§Example
use alloy_provider::{ProviderBuilder, RootProvider, network::AnyNetwork};
use cast::Cast;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().connect("http://localhost:8545").await?;
let cast = Cast::new(provider);
let block = cast.block(5, true, vec![], false).await?;
println!("{}", block);pub(crate) async fn block_field_as_num<B: Into<BlockId>>( &self, block: B, field: String, ) -> Result<U256>
pub async fn base_fee<B: Into<BlockId>>(&self, block: B) -> Result<U256>
pub async fn age<B: Into<BlockId>>(&self, block: B) -> Result<String>
pub async fn timestamp<B: Into<BlockId>>(&self, block: B) -> Result<U256>
pub async fn chain(&self) -> Result<&str>
pub async fn chain_id(&self) -> Result<u64>
pub async fn block_number(&self) -> Result<u64>
pub async fn gas_price(&self) -> Result<u128>
Sourcepub async fn nonce(&self, who: Address, block: Option<BlockId>) -> Result<u64>
pub async fn nonce(&self, who: Address, block: Option<BlockId>) -> Result<u64>
§Example
use alloy_primitives::Address;
use alloy_provider::{ProviderBuilder, RootProvider, network::AnyNetwork};
use cast::Cast;
use std::str::FromStr;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().connect("http://localhost:8545").await?;
let cast = Cast::new(provider);
let addr = Address::from_str("0x7eD52863829AB99354F3a0503A622e82AcD5F7d3")?;
let nonce = cast.nonce(addr, None).await?;
println!("{}", nonce);Sourcepub async fn codehash(
&self,
who: Address,
slots: Vec<B256>,
block: Option<BlockId>,
) -> Result<String>
pub async fn codehash( &self, who: Address, slots: Vec<B256>, block: Option<BlockId>, ) -> Result<String>
#Example
use alloy_primitives::{Address, FixedBytes};
use alloy_provider::{network::AnyNetwork, ProviderBuilder, RootProvider};
use cast::Cast;
use std::str::FromStr;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().connect("http://localhost:8545").await?;
let cast = Cast::new(provider);
let addr = Address::from_str("0x7eD52863829AB99354F3a0503A622e82AcD5F7d3")?;
let slots = vec![FixedBytes::from_str("0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421")?];
let codehash = cast.codehash(addr, slots, None).await?;
println!("{}", codehash);Sourcepub async fn storage_root(
&self,
who: Address,
slots: Vec<B256>,
block: Option<BlockId>,
) -> Result<String>
pub async fn storage_root( &self, who: Address, slots: Vec<B256>, block: Option<BlockId>, ) -> Result<String>
#Example
use alloy_primitives::{Address, FixedBytes};
use alloy_provider::{network::AnyNetwork, ProviderBuilder, RootProvider};
use cast::Cast;
use std::str::FromStr;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().connect("http://localhost:8545").await?;
let cast = Cast::new(provider);
let addr = Address::from_str("0x7eD52863829AB99354F3a0503A622e82AcD5F7d3")?;
let slots = vec![FixedBytes::from_str("0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421")?];
let storage_root = cast.storage_root(addr, slots, None).await?;
println!("{}", storage_root);Sourcepub async fn implementation(
&self,
who: Address,
is_beacon: bool,
block: Option<BlockId>,
) -> Result<String>
pub async fn implementation( &self, who: Address, is_beacon: bool, block: Option<BlockId>, ) -> Result<String>
§Example
use alloy_primitives::Address;
use alloy_provider::{ProviderBuilder, RootProvider, network::AnyNetwork};
use cast::Cast;
use std::str::FromStr;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().connect("http://localhost:8545").await?;
let cast = Cast::new(provider);
let addr = Address::from_str("0x7eD52863829AB99354F3a0503A622e82AcD5F7d3")?;
let implementation = cast.implementation(addr, false, None).await?;
println!("{}", implementation);Sourcepub async fn admin(
&self,
who: Address,
block: Option<BlockId>,
) -> Result<String>
pub async fn admin( &self, who: Address, block: Option<BlockId>, ) -> Result<String>
§Example
use alloy_primitives::Address;
use alloy_provider::{ProviderBuilder, RootProvider, network::AnyNetwork};
use cast::Cast;
use std::str::FromStr;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().connect("http://localhost:8545").await?;
let cast = Cast::new(provider);
let addr = Address::from_str("0x7eD52863829AB99354F3a0503A622e82AcD5F7d3")?;
let admin = cast.admin(addr, None).await?;
println!("{}", admin);Sourcepub async fn compute_address(
&self,
address: Address,
nonce: Option<u64>,
) -> Result<Address>
pub async fn compute_address( &self, address: Address, nonce: Option<u64>, ) -> Result<Address>
§Example
use alloy_primitives::{Address, U256};
use alloy_provider::{ProviderBuilder, RootProvider, network::AnyNetwork};
use cast::Cast;
use std::str::FromStr;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().connect("http://localhost:8545").await?;
let cast = Cast::new(provider);
let addr = Address::from_str("7eD52863829AB99354F3a0503A622e82AcD5F7d3")?;
let computed_address = cast.compute_address(addr, None).await?;
println!("Computed address for address {addr}: {computed_address}");Sourcepub async fn code(
&self,
who: Address,
block: Option<BlockId>,
disassemble: bool,
) -> Result<String>
pub async fn code( &self, who: Address, block: Option<BlockId>, disassemble: bool, ) -> Result<String>
§Example
use alloy_primitives::Address;
use alloy_provider::{ProviderBuilder, RootProvider, network::AnyNetwork};
use cast::Cast;
use std::str::FromStr;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().connect("http://localhost:8545").await?;
let cast = Cast::new(provider);
let addr = Address::from_str("0x00000000219ab540356cbb839cbe05303d7705fa")?;
let code = cast.code(addr, None, false).await?;
println!("{}", code);Sourcepub async fn codesize(
&self,
who: Address,
block: Option<BlockId>,
) -> Result<String>
pub async fn codesize( &self, who: Address, block: Option<BlockId>, ) -> Result<String>
Example
use alloy_primitives::Address;
use alloy_provider::{ProviderBuilder, RootProvider, network::AnyNetwork};
use cast::Cast;
use std::str::FromStr;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().connect("http://localhost:8545").await?;
let cast = Cast::new(provider);
let addr = Address::from_str("0x00000000219ab540356cbb839cbe05303d7705fa")?;
let codesize = cast.codesize(addr, None).await?;
println!("{}", codesize);Sourcepub async fn transaction(
&self,
tx_hash: Option<String>,
from: Option<NameOrAddress>,
nonce: Option<u64>,
field: Option<String>,
raw: bool,
to_request: bool,
) -> Result<String>
pub async fn transaction( &self, tx_hash: Option<String>, from: Option<NameOrAddress>, nonce: Option<u64>, field: Option<String>, raw: bool, to_request: bool, ) -> Result<String>
§Example
use alloy_provider::{ProviderBuilder, RootProvider, network::AnyNetwork};
use cast::Cast;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().connect("http://localhost:8545").await?;
let cast = Cast::new(provider);
let tx_hash = "0xf8d1713ea15a81482958fb7ddf884baee8d3bcc478c5f2f604e008dc788ee4fc";
let tx = cast.transaction(Some(tx_hash.to_string()), None, None, None, false, false).await?;
println!("{}", tx);Sourcepub async fn receipt(
&self,
tx_hash: String,
field: Option<String>,
confs: u64,
timeout: Option<u64>,
cast_async: bool,
) -> Result<String>
pub async fn receipt( &self, tx_hash: String, field: Option<String>, confs: u64, timeout: Option<u64>, cast_async: bool, ) -> Result<String>
§Example
use alloy_provider::{ProviderBuilder, RootProvider, network::AnyNetwork};
use cast::Cast;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().connect("http://localhost:8545").await?;
let cast = Cast::new(provider);
let tx_hash = "0xf8d1713ea15a81482958fb7ddf884baee8d3bcc478c5f2f604e008dc788ee4fc";
let receipt = cast.receipt(tx_hash.to_string(), None, 1, None, false).await?;
println!("{}", receipt);Sourcepub async fn rpc<V>(&self, method: &str, params: V) -> Result<String>where
V: RpcSend,
pub async fn rpc<V>(&self, method: &str, params: V) -> Result<String>where
V: RpcSend,
Perform a raw JSON-RPC request
§Example
use alloy_provider::{ProviderBuilder, RootProvider, network::AnyNetwork};
use cast::Cast;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().connect("http://localhost:8545").await?;
let cast = Cast::new(provider);
let result = cast
.rpc("eth_getBalance", &["0xc94770007dda54cF92009BFF0dE90c06F603a09f", "latest"])
.await?;
println!("{}", result);Sourcepub async fn storage(
&self,
from: Address,
slot: B256,
block: Option<BlockId>,
) -> Result<String>
pub async fn storage( &self, from: Address, slot: B256, block: Option<BlockId>, ) -> Result<String>
Returns the slot
§Example
use alloy_primitives::{Address, B256};
use alloy_provider::{ProviderBuilder, RootProvider, network::AnyNetwork};
use cast::Cast;
use std::str::FromStr;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().connect("http://localhost:8545").await?;
let cast = Cast::new(provider);
let addr = Address::from_str("0x00000000006c3852cbEf3e08E8dF289169EdE581")?;
let slot = B256::ZERO;
let storage = cast.storage(addr, slot, None).await?;
println!("{}", storage);pub async fn filter_logs(&self, filter: Filter) -> Result<String>
Sourcepub async fn filter_logs_chunked(
&self,
filter: Filter,
chunk_size: u64,
) -> Result<String>
pub async fn filter_logs_chunked( &self, filter: Filter, chunk_size: u64, ) -> Result<String>
Retrieves logs using chunked requests to handle large block ranges.
Automatically divides large block ranges into smaller chunks to avoid provider limits and processes them with controlled concurrency to prevent rate limiting.
pub(crate) fn format_logs(logs: Vec<Log>) -> Result<String>
pub(crate) fn extract_block_range(filter: &Filter) -> (Option<u64>, Option<u64>)
Sourcepub(crate) async fn get_logs_chunked(
&self,
filter: &Filter,
chunk_size: u64,
) -> Result<Vec<Log>>
pub(crate) async fn get_logs_chunked( &self, filter: &Filter, chunk_size: u64, ) -> Result<Vec<Log>>
Retrieves logs with automatic chunking fallback.
First tries to fetch logs for the entire range. If that fails, falls back to concurrent chunked requests with rate limiting.
Sourcepub(crate) async fn get_logs_chunked_concurrent(
&self,
filter: &Filter,
chunk_size: u64,
) -> Result<Vec<Log>>
pub(crate) async fn get_logs_chunked_concurrent( &self, filter: &Filter, chunk_size: u64, ) -> Result<Vec<Log>>
Retrieves logs using concurrent chunked requests with rate limiting.
Divides the block range into chunks and processes them with a maximum of 5 concurrent requests. Falls back to single-block queries if chunks fail.
Sourcepub async fn convert_block_number(
&self,
block: Option<BlockId>,
) -> Result<Option<BlockNumberOrTag>, Error>
pub async fn convert_block_number( &self, block: Option<BlockId>, ) -> Result<Option<BlockNumberOrTag>, Error>
Converts a block identifier into a block number.
If the block identifier is a block number, then this function returns the block number. If
the block identifier is a block hash, then this function returns the block number of
that block hash. If the block identifier is None, then this function returns None.
§Example
use alloy_primitives::fixed_bytes;
use alloy_provider::{ProviderBuilder, RootProvider, network::AnyNetwork};
use alloy_rpc_types::{BlockId, BlockNumberOrTag};
use cast::Cast;
use std::{convert::TryFrom, str::FromStr};
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().connect("http://localhost:8545").await?;
let cast = Cast::new(provider);
let block_number = cast.convert_block_number(Some(BlockId::number(5))).await?;
assert_eq!(block_number, Some(BlockNumberOrTag::Number(5)));
let block_number = cast
.convert_block_number(Some(BlockId::hash(fixed_bytes!(
"0000000000000000000000000000000000000000000000000000000000001234"
))))
.await?;
assert_eq!(block_number, Some(BlockNumberOrTag::Number(4660)));
let block_number = cast.convert_block_number(None).await?;
assert_eq!(block_number, None);Sourcepub async fn subscribe(
&self,
filter: Filter,
output: &mut dyn Write,
) -> Result<()>
pub async fn subscribe( &self, filter: Filter, output: &mut dyn Write, ) -> Result<()>
Sets up a subscription to the given filter and writes the logs to the given output.
§Example
use alloy_primitives::Address;
use alloy_provider::{ProviderBuilder, RootProvider, network::AnyNetwork};
use alloy_rpc_types::Filter;
use alloy_transport::BoxTransport;
use cast::Cast;
use std::{io, str::FromStr};
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().connect("wss://localhost:8545").await?;
let cast = Cast::new(provider);
let filter =
Filter::new().address(Address::from_str("0x00000000006c3852cbEf3e08E8dF289169EdE581")?);
let mut output = io::stdout();
cast.subscribe(filter, &mut output).await?;Auto Trait Implementations§
impl<P> Freeze for Cast<P>where
P: Freeze,
impl<P> RefUnwindSafe for Cast<P>where
P: RefUnwindSafe,
impl<P> Send for Cast<P>where
P: Send,
impl<P> Sync for Cast<P>where
P: Sync,
impl<P> Unpin for Cast<P>where
P: Unpin,
impl<P> UnwindSafe for Cast<P>where
P: UnwindSafe,
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
§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for 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<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<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> 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 tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].§impl<D> OwoColorize for D
impl<D> OwoColorize for D
§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg] or
a color-specific method, such as [OwoColorize::green], Read more§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg] or
a color-specific method, such as [OwoColorize::on_yellow], Read more§fn fg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
§fn bg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
§fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
§fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling [Attribute] value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi [Quirk] value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the [Condition] value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);§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> 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.§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<T> ErasedDestructor for Twhere
T: 'static,
Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.