pub trait AsRef<T>
where T: ?Sized,
{ // Required method fn as_ref(&self) -> &T; }
Available on non-crate feature miri-test-libstd only.
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, Borrow has a blanket impl for any T, and can be used to accept either a reference or a value. (See also note on AsRef’s reflexibility below.)
  • Borrow also requires that Hash, Eq and Ord for 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 implement AsRef, but not Borrow.

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§

source

fn as_ref(&self) -> &T

Converts this type into a shared reference of the (usually inferred) input type.

Implementors§

source§

impl AsRef<str> for IpAddr

Available on crate feature alloc only.
source§

impl AsRef<str> for str

source§

impl AsRef<str> for Mime

source§

impl AsRef<str> for CompactString

source§

impl AsRef<str> for HeaderName

source§

impl AsRef<str> for Method

source§

impl AsRef<str> for Authority

source§

impl AsRef<str> for Scheme

source§

impl AsRef<str> for String

source§

impl AsRef<str> for webpki::subject_name::dns_name::DnsName

Available on crate feature alloc only.
source§

impl AsRef<str> for DnsNameRef<'_>

§

impl AsRef<str> for Field

source§

impl AsRef<Instant> for Instant

1.8.0 · source§

impl AsRef<Path> for Cow<'_, OsStr>

1.25.0 · source§

impl AsRef<Path> for Component<'_>

source§

impl AsRef<Path> for str

source§

impl AsRef<Path> for Path

source§

impl AsRef<Path> for PathBuf

source§

impl AsRef<Path> for String

source§

impl AsRef<Path> for OsStr

source§

impl AsRef<Path> for OsString

source§

impl AsRef<Path> for Components<'_>

source§

impl AsRef<Path> for std::path::Iter<'_>

1.7.0 · source§

impl AsRef<CStr> for CStr

1.7.0 · source§

impl AsRef<CStr> for CString

source§

impl AsRef<LocalWaker> for Waker

source§

impl AsRef<OsStr> for Component<'_>

source§

impl AsRef<OsStr> for str

source§

impl AsRef<OsStr> for CompactString

source§

impl AsRef<OsStr> for Path

source§

impl AsRef<OsStr> for PathBuf

source§

impl AsRef<OsStr> for String

source§

impl AsRef<OsStr> for OsStr

source§

impl AsRef<OsStr> for OsString

source§

impl AsRef<OsStr> for Components<'_>

source§

impl AsRef<OsStr> for std::path::Iter<'_>

source§

impl AsRef<TcpStream> for tokio::net::tcp::split::ReadHalf<'_>

source§

impl AsRef<TcpStream> for tokio::net::tcp::split::WriteHalf<'_>

source§

impl AsRef<TcpStream> for tokio::net::tcp::split_owned::OwnedReadHalf

source§

impl AsRef<TcpStream> for tokio::net::tcp::split_owned::OwnedWriteHalf

source§

impl AsRef<UnixStream> for tokio::net::unix::split::ReadHalf<'_>

source§

impl AsRef<UnixStream> for tokio::net::unix::split::WriteHalf<'_>

source§

impl AsRef<UnixStream> for tokio::net::unix::split_owned::OwnedReadHalf

source§

impl AsRef<UnixStream> for tokio::net::unix::split_owned::OwnedWriteHalf

§

impl AsRef<Semaphore> for PollSemaphore

source§

impl AsRef<Uuid> for Braced

source§

impl AsRef<Uuid> for Hyphenated

source§

impl AsRef<Uuid> for Simple

source§

impl AsRef<Uuid> for Urn

§

impl AsRef<[u8; 4]> for Ipv4Addr

source§

impl AsRef<[u8; 12]> for ring::aead::nonce::Nonce

§

impl AsRef<[u8; 12]> for Nonce

§

impl AsRef<[u8; 16]> for Ipv6Addr

source§

impl AsRef<[u8]> for BytesCow

source§

impl AsRef<[u8]> for SubjectNameRef<'_>

source§

impl AsRef<[u8]> for str

source§

impl AsRef<[u8]> for Bytes

source§

impl AsRef<[u8]> for BytesMut

§

impl AsRef<[u8]> for CertificateDer<'_>

source§

impl AsRef<[u8]> for CompactString

source§

impl AsRef<[u8]> for HeaderName

source§

impl AsRef<[u8]> for HeaderValue

source§

impl AsRef<[u8]> for ring::aead::Tag

source§

impl AsRef<[u8]> for ring::agreement::PublicKey

source§

impl AsRef<[u8]> for ring::digest::Digest

source§

impl AsRef<[u8]> for ring::hmac::Tag

source§

impl AsRef<[u8]> for ring::pkcs8::Document

source§

impl AsRef<[u8]> for RsaSubjectPublicKey

source§

impl AsRef<[u8]> for ring::signature::Signature

source§

impl AsRef<[u8]> for String

source§

impl AsRef<[u8]> for Protocol

source§

impl AsRef<[u8]> for AeadKey

source§

impl AsRef<[u8]> for Iv

source§

impl AsRef<[u8]> for Output

source§

impl AsRef<[u8]> for rustls::crypto::hmac::Tag

source§

impl AsRef<[u8]> for OkmBlock

source§

impl AsRef<[u8]> for Certificate

source§

impl AsRef<[u8]> for rustls::msgs::handshake::DistinguishedName

source§

impl AsRef<[u8]> for rustls::msgs::handshake::DistinguishedName

source§

impl AsRef<[u8]> for PresharedKeyBinder

source§

impl AsRef<[u8]> for ProtocolName

source§

impl AsRef<[u8]> for ResponderId

source§

impl AsRef<[u8]> for Sct

source§

impl AsRef<[u8]> for rustls::quic::Tag

source§

impl AsRef<[u8]> for rustls::quic::Tag

source§

impl AsRef<[u8]> for Uuid

§

impl AsRef<[u8]> for AlgorithmIdentifier

§

impl AsRef<[u8]> for CertificateRevocationListDer<'_>

§

impl AsRef<[u8]> for Der<'_>

§

impl AsRef<[u8]> for Digest

§

impl AsRef<[u8]> for Document

§

impl AsRef<[u8]> for PublicKey

§

impl AsRef<[u8]> for PublicKey

§

impl AsRef<[u8]> for Signature

§

impl AsRef<[u8]> for Tag

§

impl AsRef<[u8]> for Tag

1.55.0 · source§

impl<'a> AsRef<str> for alloc::string::Drain<'a>

source§

impl<'a> AsRef<str> for Name<'a>

§

impl<'a> AsRef<str> for BmpString<'a>

§

impl<'a> AsRef<str> for DnsName<'a>

§

impl<'a> AsRef<str> for GeneralString<'a>

§

impl<'a> AsRef<str> for GraphicString<'a>

§

impl<'a> AsRef<str> for Ia5String<'a>

§

impl<'a> AsRef<str> for NumericString<'a>

§

impl<'a> AsRef<str> for ObjectDescriptor<'a>

§

impl<'a> AsRef<str> for PrintableString<'a>

§

impl<'a> AsRef<str> for TeletexString<'a>

§

impl<'a> AsRef<str> for UniversalString<'a>

§

impl<'a> AsRef<str> for Utf8String<'a>

§

impl<'a> AsRef<str> for VideotexString<'a>

§

impl<'a> AsRef<str> for VisibleString<'a>

1.55.0 · source§

impl<'a> AsRef<[u8]> for alloc::string::Drain<'a>

source§

impl<'a> AsRef<[u8]> for TbsCertificate<'a>

source§

impl<'a> AsRef<[u8]> for TbsCertList<'a>

§

impl<'a> AsRef<[u8]> for BitString<'a>

§

impl<'a> AsRef<[u8]> for BitStringObject<'a>

§

impl<'a> AsRef<[u8]> for Integer<'a>

§

impl<'a> AsRef<[u8]> for OctetString<'a>

§

impl<'a> AsRef<[u8]> for Sequence<'a>

§

impl<'a> AsRef<[u8]> for Set<'a>

source§

impl<'a, K, V, T, TDeref> AsRef<TDeref> for MappedRef<'a, K, V, T>
where K: Eq + Hash, T: AsRef<TDeref>, TDeref: ?Sized,

1.46.0 · source§

impl<'a, T, A> AsRef<[T]> for alloc::vec::drain::Drain<'a, T, A>
where A: Allocator,

§

impl<'a, TagKind, T, E> AsRef<T> for TaggedParser<'a, TagKind, T, E>

§

impl<'s, T> AsRef<[T]> for SliceVec<'s, T>

§

impl<A> AsRef<[<A as Array>::Item]> for ArrayVec<A>
where A: Array,

§

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,

source§

impl<A> AsRef<[u8]> for ring::aead::Aad<A>
where A: AsRef<[u8]>,

§

impl<A> AsRef<[u8]> for Aad<A>
where A: AsRef<[u8]>,

§

impl<B> AsRef<[u8]> for UnparsedPublicKey<B>
where B: AsRef<[u8]>,

§

impl<B> AsRef<[u8]> for UnparsedPublicKey<B>
where B: AsRef<[u8]>,

source§

impl<S> AsRef<str> for Ascii<S>
where S: AsRef<str>,

source§

impl<S> AsRef<str> for UniCase<S>
where S: AsRef<str>,

§

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

source§

impl<T> AsRef<[T]> for [T]

1.13.0 · source§

impl<T> AsRef<[T]> for kvarn::prelude::utils::prelude::compact_str::core::slice::Iter<'_, T>

1.53.0 · source§

impl<T> AsRef<[T]> for IterMut<'_, T>

§

impl<T> AsRef<[T]> for SequenceOf<T>

§

impl<T> AsRef<[T]> for SetOf<T>

source§

impl<T> AsRef<str> for Port<T>
where T: AsRef<str>,

source§

impl<T> AsRef<T> for Cow<'_, T>
where T: ToOwned + ?Sized,

§

impl<T> AsRef<T> for Arc<T>
where T: ?Sized,

§

impl<T> AsRef<T> for Owned<T>
where T: Pointable + ?Sized,

source§

impl<T> AsRef<[u8]> for Window<T>
where T: AsRef<[u8]>,

1.46.0 · source§

impl<T, A> AsRef<[T]> for IntoIter<T, A>
where A: Allocator,

source§

impl<T, A> AsRef<[T]> for Vec<T, A>
where A: Allocator,

source§

impl<T, A> AsRef<Vec<T, A>> for Vec<T, A>
where A: Allocator,

1.5.0 · source§

impl<T, A> AsRef<T> for kvarn::prelude::Arc<T, A>
where A: Allocator, T: ?Sized,

1.5.0 · source§

impl<T, A> AsRef<T> for Box<T, A>
where A: Allocator, T: ?Sized,

1.5.0 · source§

impl<T, A> AsRef<T> for Rc<T, A>
where A: Allocator, T: ?Sized,

§

impl<T, E, TagKind, const CLASS: u8, const TAG: u32> AsRef<T> for TaggedValue<T, E, TagKind, CLASS, TAG>

§

impl<T, N> AsRef<[T]> for GenericArray<T, N>
where N: ArrayLength<T>,

source§

impl<T, U> AsRef<U> for &T
where T: AsRef<U> + ?Sized, U: ?Sized,

source§

impl<T, U> AsRef<U> for &mut T
where T: AsRef<U> + ?Sized, U: ?Sized,

§

impl<T, Z> AsRef<T> for Zeroizing<Z>
where Z: AsRef<T> + Zeroize, T: ?Sized,

source§

impl<T, const N: usize> AsRef<[T; N]> for Simd<T, N>

source§

impl<T, const N: usize> AsRef<[T]> for [T; N]

source§

impl<T, const N: usize> AsRef<[T]> for Simd<T, N>

§

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 SIZE: usize> AsRef<str> for WriteBuffer<SIZE>

§

impl<const SIZE: usize> AsRef<[u8]> for WriteBuffer<SIZE>