pub struct Cast<P, T> {
pub(crate) provider: P,
pub(crate) transport: PhantomData<T>,
}
Fields§
§provider: P
§transport: PhantomData<T>
Implementations§
Source§impl<T, P> Cast<P, T>where
T: Transport + Clone,
P: Provider<T, AnyNetwork>,
impl<T, P> Cast<P, T>where
T: Transport + Clone,
P: Provider<T, AnyNetwork>,
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::{network::AnyNetwork, ProviderBuilder, RootProvider};
use cast::Cast;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().on_builtin("http://localhost:8545").await?;
let cast = Cast::new(provider);
Sourcepub async fn call(
&self,
req: &WithOtherFields<TransactionRequest>,
func: Option<&Function>,
block: Option<BlockId>,
) -> Result<String>
pub async fn call( &self, req: &WithOtherFields<TransactionRequest>, func: Option<&Function>, block: Option<BlockId>, ) -> Result<String>
Makes a read-only call to the specified address
§Example
use alloy_primitives::{Address, U256, Bytes};
use alloy_rpc_types::{TransactionRequest};
use alloy_serde::WithOtherFields;
use cast::Cast;
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 alloy_provider = ProviderBuilder::<_,_, AnyNetwork>::default().on_builtin("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(alloy_provider);
let data = cast.call(&tx, None, None).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().on_builtin("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<T, AnyNetwork>>
pub async fn send( &self, tx: WithOtherFields<TransactionRequest>, ) -> Result<PendingTransactionBuilder<T, 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().on_builtin("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<T, AnyNetwork>>
pub async fn publish( &self, raw_tx: String, ) -> Result<PendingTransactionBuilder<T, AnyNetwork>>
Publishes a raw transaction to the network
§Example
use alloy_provider::{network::AnyNetwork, ProviderBuilder, RootProvider};
use cast::Cast;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().on_builtin("http://localhost:8545").await?;
let cast = Cast::new(provider);
let res = cast.publish("0x1234".to_string()).await?;
println!("{:?}", res);
Sourcepub async fn block<B: Into<BlockId>>(
&self,
block: B,
full: bool,
field: Option<String>,
) -> Result<String>
pub async fn block<B: Into<BlockId>>( &self, block: B, full: bool, field: Option<String>, ) -> Result<String>
§Example
use alloy_provider::{network::AnyNetwork, ProviderBuilder, RootProvider};
use cast::Cast;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().on_builtin("http://localhost:8545").await?;
let cast = Cast::new(provider);
let block = cast.block(5, true, None).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::{network::AnyNetwork, ProviderBuilder, RootProvider};
use cast::Cast;
use std::str::FromStr;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().on_builtin("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().on_builtin("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().on_builtin("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,
block: Option<BlockId>,
) -> Result<String>
pub async fn implementation( &self, who: Address, block: Option<BlockId>, ) -> Result<String>
§Example
use alloy_primitives::Address;
use alloy_provider::{network::AnyNetwork, ProviderBuilder, RootProvider};
use cast::Cast;
use std::str::FromStr;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().on_builtin("http://localhost:8545").await?;
let cast = Cast::new(provider);
let addr = Address::from_str("0x7eD52863829AB99354F3a0503A622e82AcD5F7d3")?;
let implementation = cast.implementation(addr, 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::{network::AnyNetwork, ProviderBuilder, RootProvider};
use cast::Cast;
use std::str::FromStr;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().on_builtin("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::{network::AnyNetwork, ProviderBuilder, RootProvider};
use cast::Cast;
use std::str::FromStr;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().on_builtin("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::{network::AnyNetwork, ProviderBuilder, RootProvider};
use cast::Cast;
use std::str::FromStr;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().on_builtin("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::{network::AnyNetwork, ProviderBuilder, RootProvider};
use cast::Cast;
use std::str::FromStr;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().on_builtin("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: String,
field: Option<String>,
raw: bool,
) -> Result<String>
pub async fn transaction( &self, tx_hash: String, field: Option<String>, raw: bool, ) -> Result<String>
§Example
use alloy_provider::{network::AnyNetwork, ProviderBuilder, RootProvider};
use cast::Cast;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().on_builtin("http://localhost:8545").await?;
let cast = Cast::new(provider);
let tx_hash = "0xf8d1713ea15a81482958fb7ddf884baee8d3bcc478c5f2f604e008dc788ee4fc";
let tx = cast.transaction(tx_hash.to_string(), None, 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::{network::AnyNetwork, ProviderBuilder, RootProvider};
use cast::Cast;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().on_builtin("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: RpcParam,
pub async fn rpc<V>(&self, method: &str, params: V) -> Result<String>where
V: RpcParam,
Perform a raw JSON-RPC request
§Example
use alloy_provider::{network::AnyNetwork, ProviderBuilder, RootProvider};
use cast::Cast;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().on_builtin("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::{network::AnyNetwork, ProviderBuilder, RootProvider};
use cast::Cast;
use std::str::FromStr;
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().on_builtin("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 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::{network::AnyNetwork, ProviderBuilder, RootProvider};
use alloy_rpc_types::{BlockId, BlockNumberOrTag};
use cast::Cast;
use std::{convert::TryFrom, str::FromStr};
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().on_builtin("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::{network::AnyNetwork, ProviderBuilder, RootProvider};
use alloy_rpc_types::Filter;
use alloy_transport::BoxTransport;
use cast::Cast;
use std::{io, str::FromStr};
let provider =
ProviderBuilder::<_, _, AnyNetwork>::default().on_builtin("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?;
pub async fn erc20_balance( &self, token: Address, owner: Address, block: Option<BlockId>, ) -> Result<U256>
Auto Trait Implementations§
impl<P, T> Freeze for Cast<P, T>where
P: Freeze,
impl<P, T> RefUnwindSafe for Cast<P, T>where
P: RefUnwindSafe,
T: RefUnwindSafe,
impl<P, T> Send for Cast<P, T>
impl<P, T> Sync for Cast<P, T>
impl<P, T> Unpin for Cast<P, T>
impl<P, T> UnwindSafe for Cast<P, T>where
P: UnwindSafe,
T: 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<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 moreSource§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> 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> 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,
impl<T> MaybeSendSync for T
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.