pub trait AsRef<T>where
T: ?Sized,{
// Required method
fn as_ref(&self) -> &T;
}Expand description
Used to do a cheap reference-to-reference conversion.
This trait is similar to AsMut which is used for converting between mutable references.
If you need to do a costly conversion it is better to implement From with type
&T or write a custom function.
§Relation to Borrow
AsRef has the same signature as Borrow, but Borrow is different in a few aspects:
- Unlike
AsRef,Borrowhas a blanket impl for anyT, and can be used to accept either a reference or a value. (See also note onAsRef’s reflexibility below.) Borrowalso requires thatHash,EqandOrdfor a borrowed value are equivalent to those of the owned value. For this reason, if you want to borrow only a single field of a struct you can implementAsRef, but notBorrow.
Note: This trait must not fail. If the conversion can fail, use a
dedicated method which returns an Option<T> or a Result<T, E>.
§Generic Implementations
AsRef auto-dereferences if the inner type is a reference or a mutable reference
(e.g.: foo.as_ref() will work the same if foo has type &mut Foo or &&mut Foo).
Note that due to historic reasons, the above currently does not hold generally for all
dereferenceable types, e.g. foo.as_ref() will not work the same as
Box::new(foo).as_ref(). Instead, many smart pointers provide an as_ref implementation which
simply returns a reference to the pointed-to value (but do not perform a cheap
reference-to-reference conversion for that value). However, AsRef::as_ref should not be
used for the sole purpose of dereferencing; instead ‘Deref coercion’ can be used:
let x = Box::new(5i32);
// Avoid this:
// let y: &i32 = x.as_ref();
// Better just write:
let y: &i32 = &x;Types which implement Deref should consider implementing AsRef<T> as follows:
impl<T> AsRef<T> for SomeType
where
T: ?Sized,
<SomeType as Deref>::Target: AsRef<T>,
{
fn as_ref(&self) -> &T {
self.deref().as_ref()
}
}§Reflexivity
Ideally, AsRef would be reflexive, i.e. there would be an impl<T: ?Sized> AsRef<T> for T
with as_ref simply returning its argument unchanged.
Such a blanket implementation is currently not provided due to technical restrictions of
Rust’s type system (it would be overlapping with another existing blanket implementation for
&T where T: AsRef<U> which allows AsRef to auto-dereference, see “Generic Implementations”
above).
A trivial implementation of AsRef<T> for T must be added explicitly for a particular type T
where needed or desired. Note, however, that not all types from std contain such an
implementation, and those cannot be added by external code due to orphan rules.
§Examples
By using trait bounds we can accept arguments of different types as long as they can be
converted to the specified type T.
For example: By creating a generic function that takes an AsRef<str> we express that we
want to accept all references that can be converted to &str as an argument.
Since both String and &str implement AsRef<str> we can accept both as input argument.
fn is_hello<T: AsRef<str>>(s: T) {
assert_eq!("hello", s.as_ref());
}
let s = "hello";
is_hello(s);
let s = "hello".to_string();
is_hello(s);Required Methods§
Implementors§
impl AsRef<str> for InvalidTransaction
impl AsRef<str> for UnknownTransaction
impl AsRef<str> for Method
impl AsRef<str> for str
impl AsRef<str> for String
impl AsRef<str> for Ia5String
impl AsRef<str> for PrintableString
impl AsRef<str> for TeletexString
impl AsRef<str> for Buffer
impl AsRef<str> for Field
impl AsRef<ByteStr> for str
impl AsRef<ByteStr> for ByteStr
impl AsRef<ByteStr> for ByteString
impl AsRef<CryptoBytes<subsoil::::core::ecdsa::GenericPublic::{constant#0}, (PublicTag, EcdsaTag)>> for topsoil_core::runtime::app_crypto::ecdsa::AppPublic
impl AsRef<CryptoBytes<subsoil::::core::ecdsa::GenericPublic::{constant#0}, (PublicTag, EcdsaTag)>> for subsoil::consensus::beefy::ecdsa_crypto::Public
impl AsRef<CryptoBytes<subsoil::::core::ecdsa::GenericSignature::{constant#0}, (SignatureTag, CryptoBytes<subsoil::::core::ecdsa::GenericPublic::{constant#0}, (PublicTag, EcdsaTag)>)>> for topsoil_core::runtime::app_crypto::ecdsa::AppProofOfPossession
impl AsRef<CryptoBytes<subsoil::::core::ecdsa::GenericSignature::{constant#0}, (SignatureTag, CryptoBytes<subsoil::::core::ecdsa::GenericPublic::{constant#0}, (PublicTag, EcdsaTag)>)>> for topsoil_core::runtime::app_crypto::ecdsa::AppSignature
impl AsRef<CryptoBytes<subsoil::::core::ecdsa::GenericSignature::{constant#0}, (SignatureTag, CryptoBytes<subsoil::::core::ecdsa::GenericPublic::{constant#0}, (PublicTag, EcdsaTag)>)>> for subsoil::consensus::beefy::ecdsa_crypto::ProofOfPossession
impl AsRef<CryptoBytes<subsoil::::core::ecdsa::GenericSignature::{constant#0}, (SignatureTag, CryptoBytes<subsoil::::core::ecdsa::GenericPublic::{constant#0}, (PublicTag, EcdsaTag)>)>> for subsoil::consensus::beefy::ecdsa_crypto::Signature
impl AsRef<CryptoBytes<subsoil::::core::ed25519::Public::{constant#0}, (PublicTag, Ed25519Tag)>> for topsoil_core::runtime::app_crypto::ed25519::AppPublic
impl AsRef<CryptoBytes<subsoil::::core::ed25519::Signature::{constant#0}, (SignatureTag, Ed25519Tag)>> for topsoil_core::runtime::app_crypto::ed25519::AppProofOfPossession
impl AsRef<CryptoBytes<subsoil::::core::ed25519::Signature::{constant#0}, (SignatureTag, Ed25519Tag)>> for topsoil_core::runtime::app_crypto::ed25519::AppSignature
impl AsRef<CryptoBytes<subsoil::::core::sr25519::Signature::{constant#0}, (SignatureTag, Sr25519Tag)>> for topsoil_core::runtime::app_crypto::sr25519::AppProofOfPossession
impl AsRef<CryptoBytes<subsoil::::core::sr25519::Signature::{constant#0}, (SignatureTag, Sr25519Tag)>> for topsoil_core::runtime::app_crypto::sr25519::AppSignature
impl AsRef<Pair> for topsoil_core::runtime::app_crypto::ed25519::AppPair
impl AsRef<Pair> for topsoil_core::runtime::app_crypto::sr25519::AppPair
impl AsRef<VrfTranscript> for VrfSignData
impl AsRef<CStr> for CString
impl AsRef<CStr> for CStr
impl AsRef<LocalWaker> for Waker
impl AsRef<OsStr> for Component<'_>
impl AsRef<OsStr> for str
impl AsRef<OsStr> for String
impl AsRef<OsStr> for OsStr
impl AsRef<OsStr> for OsString
impl AsRef<OsStr> for Components<'_>
impl AsRef<OsStr> for std::path::Iter<'_>
impl AsRef<OsStr> for Path
impl AsRef<OsStr> for PathBuf
impl AsRef<Path> for Cow<'_, OsStr>
impl AsRef<Path> for Component<'_>
impl AsRef<Path> for str
impl AsRef<Path> for String
impl AsRef<Path> for OsStr
impl AsRef<Path> for OsString
impl AsRef<Path> for Components<'_>
impl AsRef<Path> for std::path::Iter<'_>
impl AsRef<Path> for Path
impl AsRef<Path> for PathBuf
impl AsRef<VerifyingKey> for ed25519_dalek::signing::SigningKey
impl AsRef<Scalar> for Scalar
impl AsRef<Keypair> for topsoil_core::runtime::testing::sr25519::Pair
full_crypto only.impl AsRef<[u8; 8]> for bitcoin_hashes::siphash24::Hash
impl AsRef<[u8; 20]> for bitcoin_hashes::hash160::Hash
impl AsRef<[u8; 20]> for bitcoin_hashes::ripemd160::Hash
impl AsRef<[u8; 20]> for bitcoin_hashes::sha1::Hash
impl AsRef<[u8; 32]> for AccountId32
impl AsRef<[u8; 32]> for bitcoin_hashes::sha256::Hash
impl AsRef<[u8; 32]> for bitcoin_hashes::sha256d::Hash
impl AsRef<[u8; 32]> for bitcoin_hashes::sha512_256::Hash
impl AsRef<[u8; 32]> for SecretKey
impl AsRef<[u8; 32]> for Message
impl AsRef<[u8; 48]> for bitcoin_hashes::sha384::Hash
impl AsRef<[u8; 64]> for bitcoin_hashes::sha512::Hash
impl AsRef<[u8; 64]> for ElligatorSwift
impl AsRef<[u8; 64]> for secp256k1_sys::PublicKey
impl AsRef<[u8; 64]> for secp256k1_sys::Signature
impl AsRef<[u8; 64]> for XOnlyPublicKey
impl AsRef<[u8; 64]> for secp256k1::schnorr::Signature
impl AsRef<[u8; 65]> for RecoverableSignature
impl AsRef<[u8; 96]> for Keypair
impl AsRef<[u8]> for MultiSigner
impl AsRef<[u8]> for str
impl AsRef<[u8]> for ByteStr
impl AsRef<[u8]> for ByteString
impl AsRef<[u8]> for StorageKey
impl AsRef<[u8]> for H160
impl AsRef<[u8]> for H512
impl AsRef<[u8]> for topsoil_core::runtime::app_crypto::ecdsa::AppProofOfPossession
impl AsRef<[u8]> for topsoil_core::runtime::app_crypto::ecdsa::AppPublic
impl AsRef<[u8]> for topsoil_core::runtime::app_crypto::ecdsa::AppSignature
impl AsRef<[u8]> for topsoil_core::runtime::app_crypto::ed25519::AppProofOfPossession
impl AsRef<[u8]> for topsoil_core::runtime::app_crypto::ed25519::AppPublic
impl AsRef<[u8]> for topsoil_core::runtime::app_crypto::ed25519::AppSignature
impl AsRef<[u8]> for topsoil_core::runtime::app_crypto::sr25519::AppProofOfPossession
impl AsRef<[u8]> for topsoil_core::runtime::app_crypto::sr25519::AppPublic
impl AsRef<[u8]> for topsoil_core::runtime::app_crypto::sr25519::AppSignature
impl AsRef<[u8]> for AccountId32
impl AsRef<[u8]> for KeyTypeId
impl AsRef<[u8]> for H256
impl AsRef<[u8]> for UintAuthorityId
impl AsRef<[u8]> for String
impl AsRef<[u8]> for bitcoin_hashes::hash160::Hash
impl AsRef<[u8]> for bitcoin_hashes::ripemd160::Hash
impl AsRef<[u8]> for bitcoin_hashes::sha1::Hash
impl AsRef<[u8]> for bitcoin_hashes::sha256::Hash
impl AsRef<[u8]> for Midstate
impl AsRef<[u8]> for bitcoin_hashes::sha256d::Hash
impl AsRef<[u8]> for bitcoin_hashes::sha384::Hash
impl AsRef<[u8]> for bitcoin_hashes::sha512::Hash
impl AsRef<[u8]> for bitcoin_hashes::sha512_256::Hash
impl AsRef<[u8]> for bitcoin_hashes::siphash24::Hash
impl AsRef<[u8]> for blake2b_simd::Hash
impl AsRef<[u8]> for Bytes
impl AsRef<[u8]> for BytesMut
impl AsRef<[u8]> for ObjectIdentifier
impl AsRef<[u8]> for BmpString
impl AsRef<[u8]> for Ia5String
impl AsRef<[u8]> for OctetString
impl AsRef<[u8]> for OctetStringRef<'_>
impl AsRef<[u8]> for PrintableString
impl AsRef<[u8]> for TeletexString
impl AsRef<[u8]> for Document
impl AsRef<[u8]> for ed25519_dalek::verifying::VerifyingKey
impl AsRef<[u8]> for ed25519_zebra::signing_key::SigningKey
impl AsRef<[u8]> for VerificationKey
impl AsRef<[u8]> for VerificationKeyBytes
impl AsRef<[u8]> for SignatureArray
impl AsRef<[u8]> for H128
impl AsRef<[u8]> for H384
impl AsRef<[u8]> for H768
impl AsRef<[u8]> for regex_syntax::hir::literal::Literal
impl AsRef<[u8]> for regex_syntax::hir::literal::Literal
impl AsRef<[u8]> for schnorrkel::keys::PublicKey
impl AsRef<[u8]> for SerializedSignature
impl AsRef<[u8]> for subsoil::consensus::beefy::ecdsa_crypto::ProofOfPossession
impl AsRef<[u8]> for subsoil::consensus::beefy::ecdsa_crypto::Public
impl AsRef<[u8]> for subsoil::consensus::beefy::ecdsa_crypto::Signature
impl AsRef<[u64]> for U256
Get a reference to the underlying little-endian words.
impl AsRef<[u64]> for U512
Get a reference to the underlying little-endian words.
impl AsRef<[u64]> for primitive_types::U128
Get a reference to the underlying little-endian words.
impl<'a> AsRef<str> for alloc::string::Drain<'a>
impl<'a> AsRef<str> for Ia5StringRef<'a>
impl<'a> AsRef<str> for PrintableStringRef<'a>
impl<'a> AsRef<str> for TeletexStringRef<'a>
impl<'a> AsRef<str> for Utf8StringRef<'a>
impl<'a> AsRef<str> for VideotexStringRef<'a>
impl<'a> AsRef<str> for DecimalStr<'a>
impl<'a> AsRef<str> for InfinityStr<'a>
impl<'a> AsRef<str> for MinusSignStr<'a>
impl<'a> AsRef<str> for NanStr<'a>
impl<'a> AsRef<str> for PlusSignStr<'a>
impl<'a> AsRef<str> for SeparatorStr<'a>
impl<'a> AsRef<[u8]> for alloc::string::Drain<'a>
impl<'a> AsRef<[u8]> for Ia5StringRef<'a>
impl<'a> AsRef<[u8]> for PrintableStringRef<'a>
impl<'a> AsRef<[u8]> for TeletexStringRef<'a>
impl<'a> AsRef<[u8]> for Utf8StringRef<'a>
impl<'a> AsRef<[u8]> for VideotexStringRef<'a>
impl<'a, T> AsRef<T> for EncodeRef<'a, T>
impl<'a, T> AsRef<T> for EncodeValueRef<'a, T>
impl<'a, T, A> AsRef<[T]> for topsoil_core::runtime::std::vec::Drain<'a, T, A>where
A: Allocator,
impl<'a, T, A> AsRef<[T]> for allocator_api2::stable::vec::drain::Drain<'a, T, A>where
A: Allocator,
impl<'s, T> AsRef<[T]> for SliceVec<'s, T>
impl<A> AsRef<[<A as Array>::Item]> for SmallVec<A>where
A: Array,
impl<A> AsRef<[<A as Array>::Item]> for TinyVec<A>where
A: Array,
impl<A> AsRef<[<A as Array>::Item]> for tinyvec::arrayvec::ArrayVec<A>where
A: Array,
impl<C> AsRef<<C as CurveArithmetic>::AffinePoint> for ecdsa::verifying::VerifyingKey<C>where
C: PrimeCurve + CurveArithmetic,
<C as CurveArithmetic>::AffinePoint: FromEncodedPoint<C> + ToEncodedPoint<C>,
<C as Curve>::FieldBytesSize: ModulusSize,
impl<C> AsRef<<C as CurveArithmetic>::AffinePoint> for elliptic_curve::public_key::PublicKey<C>where
C: CurveArithmetic,
impl<C> AsRef<<C as CurveArithmetic>::Scalar> for BlindedScalar<C>where
C: CurveArithmetic,
impl<C> AsRef<<C as CurveArithmetic>::Scalar> for NonZeroScalar<C>where
C: CurveArithmetic,
impl<C> AsRef<VerifyingKey<C>> for ecdsa::signing::SigningKey<C>where
C: PrimeCurve + CurveArithmetic,
<C as CurveArithmetic>::Scalar: Invert<Output = CtOption<<C as CurveArithmetic>::Scalar>> + SignPrimitive<C>,
<<C as Curve>::FieldBytesSize as Add>::Output: ArrayLength<u8>,
verifying only.impl<C> AsRef<[u8]> for ecdsa::der::Signature<C>
impl<C> AsRef<[Limb]> for ScalarPrimitive<C>where
C: Curve,
impl<Inner> AsRef<Inner> for FakeDispatchable<Inner>
impl<K, V, S> AsRef<BTreeMap<K, V>> for BoundedBTreeMap<K, V, S>where
K: Ord,
impl<L, R> AsRef<str> for Either<L, R>
impl<L, R> AsRef<CStr> for Either<L, R>
std only.Requires crate feature std.
impl<L, R> AsRef<OsStr> for Either<L, R>
std only.Requires crate feature std.
impl<L, R> AsRef<Path> for Either<L, R>
std only.Requires crate feature std.
impl<L, R, Target> AsRef<[Target]> for Either<L, R>
impl<L, R, Target> AsRef<Target> for Either<L, R>
impl<O> AsRef<[u8; 2]> for I16<O>
impl<O> AsRef<[u8; 2]> for U16<O>
impl<O> AsRef<[u8; 4]> for F32<O>
impl<O> AsRef<[u8; 4]> for I32<O>
impl<O> AsRef<[u8; 4]> for U32<O>
impl<O> AsRef<[u8; 8]> for F64<O>
impl<O> AsRef<[u8; 8]> for I64<O>
impl<O> AsRef<[u8; 8]> for Isize<O>
impl<O> AsRef<[u8; 8]> for U64<O>
impl<O> AsRef<[u8; 8]> for Usize<O>
impl<O> AsRef<[u8; 16]> for I128<O>
impl<O> AsRef<[u8; 16]> for zerocopy::byteorder::U128<O>
impl<P> AsRef<P> for NonIdentity<P>
impl<Size> AsRef<[u8]> for EncodedPoint<Size>where
Size: ModulusSize,
impl<T> AsRef<[T; 1]> for GenericArray<T, UInt<UTerm, B1>>
impl<T> AsRef<[T; 2]> for GenericArray<T, UInt<UInt<UTerm, B1>, B0>>
impl<T> AsRef<[T; 3]> for GenericArray<T, UInt<UInt<UTerm, B1>, B1>>
impl<T> AsRef<[T; 4]> for GenericArray<T, UInt<UInt<UInt<UTerm, B1>, B0>, B0>>
impl<T> AsRef<[T; 5]> for GenericArray<T, UInt<UInt<UInt<UTerm, B1>, B0>, B1>>
impl<T> AsRef<[T; 6]> for GenericArray<T, UInt<UInt<UInt<UTerm, B1>, B1>, B0>>
impl<T> AsRef<[T; 7]> for GenericArray<T, UInt<UInt<UInt<UTerm, B1>, B1>, B1>>
impl<T> AsRef<[T; 8]> for GenericArray<T, UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>>
impl<T> AsRef<[T; 9]> for GenericArray<T, UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>>
impl<T> AsRef<[T; 10]> for GenericArray<T, UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>>
impl<T> AsRef<[T; 11]> for GenericArray<T, UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B1>>
impl<T> AsRef<[T; 12]> for GenericArray<T, UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>>
impl<T> AsRef<[T; 13]> for GenericArray<T, UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>>
impl<T> AsRef<[T; 14]> for GenericArray<T, UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B0>>
impl<T> AsRef<[T; 15]> for GenericArray<T, UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>>
impl<T> AsRef<[T; 16]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>>
impl<T> AsRef<[T; 17]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B1>>
impl<T> AsRef<[T; 18]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>, B0>>
impl<T> AsRef<[T; 19]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>, B1>>
impl<T> AsRef<[T; 20]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>>
impl<T> AsRef<[T; 21]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B1>>
impl<T> AsRef<[T; 22]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B1>, B0>>
impl<T> AsRef<[T; 23]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B1>, B1>>
impl<T> AsRef<[T; 24]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B0>>
impl<T> AsRef<[T; 25]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B1>>
impl<T> AsRef<[T; 26]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>, B0>>
impl<T> AsRef<[T; 27]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>, B1>>
impl<T> AsRef<[T; 28]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B0>, B0>>
impl<T> AsRef<[T; 29]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B0>, B1>>
impl<T> AsRef<[T; 30]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>, B0>>
impl<T> AsRef<[T; 31]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>, B1>>
impl<T> AsRef<[T; 32]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>>
impl<T> AsRef<[T; 33]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B1>>
impl<T> AsRef<[T; 34]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B1>, B0>>
impl<T> AsRef<[T; 35]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B1>, B1>>
impl<T> AsRef<[T; 36]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>, B0>, B0>>
impl<T> AsRef<[T; 37]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>, B0>, B1>>
impl<T> AsRef<[T; 38]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>, B1>, B0>>
impl<T> AsRef<[T; 39]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>, B1>, B1>>
impl<T> AsRef<[T; 40]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, B0>>
impl<T> AsRef<[T; 41]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, B1>>
impl<T> AsRef<[T; 42]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B1>, B0>>
impl<T> AsRef<[T; 43]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B1>, B1>>
impl<T> AsRef<[T; 44]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B1>, B0>, B0>>
impl<T> AsRef<[T; 45]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B1>, B0>, B1>>
impl<T> AsRef<[T; 46]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B1>, B1>, B0>>
impl<T> AsRef<[T; 47]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B1>, B1>, B1>>
impl<T> AsRef<[T; 48]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B0>, B0>>
impl<T> AsRef<[T; 49]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B0>, B1>>
impl<T> AsRef<[T; 50]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B1>, B0>>
impl<T> AsRef<[T; 51]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B1>, B1>>
impl<T> AsRef<[T; 52]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>, B0>, B0>>
impl<T> AsRef<[T; 53]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>, B0>, B1>>
impl<T> AsRef<[T; 54]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>, B1>, B0>>
impl<T> AsRef<[T; 55]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B1>, B1>, B1>>
impl<T> AsRef<[T; 56]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B0>, B0>, B0>>
impl<T> AsRef<[T; 57]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B0>, B0>, B1>>
impl<T> AsRef<[T; 58]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B0>, B1>, B0>>
impl<T> AsRef<[T; 59]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B0>, B1>, B1>>
impl<T> AsRef<[T; 60]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>, B0>, B0>>
impl<T> AsRef<[T; 61]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>, B0>, B1>>
impl<T> AsRef<[T; 62]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>, B1>, B0>>
impl<T> AsRef<[T; 63]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>, B1>, B1>>
impl<T> AsRef<[T; 64]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>>
impl<T> AsRef<[T; 70]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B1>, B1>, B0>>
impl<T> AsRef<[T; 80]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B0>, B0>, B0>, B0>>
impl<T> AsRef<[T; 90]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B1>, B1>, B0>, B1>, B0>>
impl<T> AsRef<[T; 100]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B1>, B0>, B0>>
impl<T> AsRef<[T; 128]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>
impl<T> AsRef<[T; 200]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B1>, B0>, B0>, B0>>
impl<T> AsRef<[T; 256]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>
impl<T> AsRef<[T; 300]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>, B0>, B1>, B1>, B0>, B0>>
impl<T> AsRef<[T; 400]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B0>, B0>, B1>, B0>, B0>, B0>, B0>>
impl<T> AsRef<[T; 500]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>, B1>, B0>, B1>, B0>, B0>>
impl<T> AsRef<[T; 512]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>
impl<T> AsRef<[T; 1000]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>, B1>, B0>, B1>, B0>, B0>, B0>>
impl<T> AsRef<[T; 1024]> for GenericArray<T, UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>
impl<T> AsRef<[T]> for [T]
impl<T> AsRef<[T]> for topsoil_core::runtime::std::slice::Iter<'_, T>
impl<T> AsRef<[T]> for IterMut<'_, T>
impl<T> AsRef<[T]> for SetOfVec<T>where
T: DerOrd,
alloc only.impl<T> AsRef<T> for Cow<'_, T>
impl<T> AsRef<T> for Exclusive<T>
impl<T> AsRef<T> for NonZero<T>where
T: Zero,
impl<T> AsRef<[u8; 32]> for bitcoin_hashes::sha256t::Hash<T>where
T: Tag,
impl<T> AsRef<[u8]> for bitcoin_hashes::sha256t::Hash<T>where
T: Tag,
impl<T> AsRef<[u8]> for Window<T>
impl<T> AsRef<[Cell<T>]> for Cell<[T]>
impl<T, A> AsRef<[T]> for topsoil_core::runtime::Vec<T, A>where
A: Allocator,
impl<T, A> AsRef<[T]> for topsoil_core::runtime::std::vec::IntoIter<T, A>where
A: Allocator,
impl<T, A> AsRef<[T]> for allocator_api2::stable::vec::into_iter::IntoIter<T, A>where
A: Allocator,
impl<T, A> AsRef<[T]> for allocator_api2::stable::vec::Vec<T, A>where
A: Allocator,
impl<T, A> AsRef<Vec<T, A>> for topsoil_core::runtime::Vec<T, A>where
A: Allocator,
impl<T, A> AsRef<Vec<T, A>> for allocator_api2::stable::vec::Vec<T, A>where
A: Allocator,
impl<T, A> AsRef<T> for topsoil_core::runtime::std::prelude::Box<T, A>
impl<T, A> AsRef<T> for Rc<T, A>
impl<T, A> AsRef<T> for UniqueRc<T, A>
impl<T, A> AsRef<T> for Arc<T, A>
impl<T, A> AsRef<T> for UniqueArc<T, A>
impl<T, A> AsRef<T> for allocator_api2::stable::boxed::Box<T, A>
impl<T, N> AsRef<[T]> for GenericArray<T, N>where
N: ArrayLength<T>,
impl<T, S> AsRef<[T]> for BoundedVec<T, S>
impl<T, S> AsRef<[T]> for WeakBoundedVec<T, S>
impl<T, S> AsRef<Vec<T>> for BoundedVec<T, S>
impl<T, S> AsRef<Vec<T>> for WeakBoundedVec<T, S>
impl<T, S> AsRef<BTreeSet<T>> for BoundedBTreeSet<T, S>where
T: Ord,
impl<T, U> AsRef<U> for &T
impl<T, U> AsRef<U> for &mut T
impl<T, Z> AsRef<T> for Zeroizing<Z>
impl<T, const CAP: usize> AsRef<[T]> for arrayvec::arrayvec::ArrayVec<T, CAP>
impl<T, const N: usize> AsRef<[T; N]> for Simd<T, N>where
T: SimdElement,
impl<T, const N: usize> AsRef<[T]> for [T; N]
impl<T, const N: usize> AsRef<[T]> for Simd<T, N>where
T: SimdElement,
impl<T, const N: usize> AsRef<[Cell<T>; N]> for Cell<[T; N]>
impl<T, const N: usize> AsRef<[Cell<T>]> for Cell<[T; N]>
impl<T, const N: usize> AsRef<[MaybeUninit<T>; N]> for MaybeUninit<[T; N]>
impl<T, const N: usize> AsRef<[MaybeUninit<T>]> for MaybeUninit<[T; N]>
impl<const CAP: usize> AsRef<str> for ArrayString<CAP>
impl<const CAP: usize> AsRef<Path> for ArrayString<CAP>
std only.impl<const LIMBS: usize> AsRef<[u64; LIMBS]> for Uint<LIMBS>
impl<const LIMBS: usize> AsRef<[Limb]> for Uint<LIMBS>
impl<const MIN: i8, const MAX: i8> AsRef<i8> for RangedI8<MIN, MAX>
impl<const MIN: i16, const MAX: i16> AsRef<i16> for RangedI16<MIN, MAX>
impl<const MIN: i32, const MAX: i32> AsRef<i32> for RangedI32<MIN, MAX>
impl<const MIN: i64, const MAX: i64> AsRef<i64> for RangedI64<MIN, MAX>
impl<const MIN: i128, const MAX: i128> AsRef<i128> for RangedI128<MIN, MAX>
impl<const MIN: isize, const MAX: isize> AsRef<isize> for RangedIsize<MIN, MAX>
impl<const MIN: u8, const MAX: u8> AsRef<u8> for RangedU8<MIN, MAX>
impl<const MIN: u16, const MAX: u16> AsRef<u16> for RangedU16<MIN, MAX>
impl<const MIN: u32, const MAX: u32> AsRef<u32> for RangedU32<MIN, MAX>
impl<const MIN: u64, const MAX: u64> AsRef<u64> for RangedU64<MIN, MAX>
impl<const MIN: u128, const MAX: u128> AsRef<u128> for RangedU128<MIN, MAX>
impl<const MIN: usize, const MAX: usize> AsRef<usize> for RangedUsize<MIN, MAX>
impl<const N: usize, T> AsRef<[u8; N]> for CryptoBytes<N, T>
impl<const N: usize, T> AsRef<[u8]> for CryptoBytes<N, T>
impl<const N: usize, const UPPERCASE: bool> AsRef<[u8]> for serdect::array::HexOrBin<N, UPPERCASE>
impl<const SIZE: usize> AsRef<str> for WriteBuffer<SIZE>
impl<const SIZE: usize> AsRef<[u8]> for WriteBuffer<SIZE>
impl<const UPPERCASE: bool> AsRef<[u8]> for serdect::slice::HexOrBin<UPPERCASE>
alloc only.