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§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementors§
impl AsRef<str> for SVGWidthOrHeight
impl AsRef<str> for Signal
signal only.impl AsRef<str> for Algorithm
impl AsRef<str> for str
impl AsRef<str> for Url
Return the serialization of this URL.
impl AsRef<str> for String
impl AsRef<str> for HeaderName
impl AsRef<str> for Method
impl AsRef<str> for Authority
impl AsRef<str> for Scheme
impl AsRef<str> for Mime
impl AsRef<str> for OpensslString
impl AsRef<str> for OpensslStringRef
impl AsRef<str> for SaltString
impl AsRef<str> for Field
impl AsRef<str> for UncasedStr
impl AsRef<sigset_t> for SigSet
signal only.impl AsRef<sockaddr_alg> for AlgAddr
impl AsRef<sockaddr_in6> for SockaddrIn6
net only.impl AsRef<sockaddr_in> for SockaddrIn
net only.impl AsRef<sockaddr_ll> for LinkAddr
net only.impl AsRef<sockaddr_nl> for NetlinkAddr
impl AsRef<sockaddr_un> for UnixAddr
impl AsRef<sockaddr_vm> for VsockAddr
impl AsRef<timespec> for TimeSpec
impl AsRef<timeval> for TimeVal
impl AsRef<Duration> for Duration
impl AsRef<HtmlStr> for Html
impl AsRef<HtmlStr> for HtmlLit
impl AsRef<HtmlStr> for HtmlStr
impl AsRef<Instant> for Instant
impl AsRef<OsStr> for Component<'_>
impl AsRef<OsStr> for str
impl AsRef<OsStr> for OsStr
impl AsRef<OsStr> for PathBuf
impl AsRef<OsStr> for TempPath
impl AsRef<OsStr> for String
impl AsRef<OsStr> for OsString
impl AsRef<OsStr> for Components<'_>
impl AsRef<OsStr> for std::path::Iter<'_>
impl AsRef<OsStr> for Path
impl AsRef<SystemTime> for Timestamp
impl AsRef<ByteStr> for str
impl AsRef<ByteStr> for ByteStr
impl AsRef<ByteStr> for ByteString
impl AsRef<CStr> for CStr
impl AsRef<CStr> for CString
impl AsRef<LocalWaker> for Waker
impl AsRef<Vec<u8>> for ByteBuf
impl AsRef<Path> for Cow<'_, OsStr>
impl AsRef<Path> for Component<'_>
impl AsRef<Path> for str
impl AsRef<Path> for OsStr
impl AsRef<Path> for PathBuf
impl AsRef<Path> for TempDir
impl AsRef<Path> for TempPath
impl AsRef<Path> for String
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 DecInt
std and (non-WASI or non-WASIp2 or wasip2) only.impl AsRef<BStr> for str
impl AsRef<BStr> for BStr
impl AsRef<BStr> for BString
impl AsRef<BStr> for [u8]
impl AsRef<Glob> for Glob
impl AsRef<FormatSizeOptions> for FormatSizeOptions
impl AsRef<Asn1BitStringRef> for Asn1BitString
impl AsRef<Asn1EnumeratedRef> for Asn1Enumerated
impl AsRef<Asn1GeneralizedTimeRef> for Asn1GeneralizedTime
impl AsRef<Asn1IntegerRef> for Asn1Integer
impl AsRef<Asn1ObjectRef> for Asn1Object
impl AsRef<Asn1OctetStringRef> for Asn1OctetString
impl AsRef<Asn1StringRef> for Asn1String
impl AsRef<Asn1TimeRef> for Asn1Time
impl AsRef<BigNumContextRef> for BigNumContext
impl AsRef<BigNumRef> for BigNum
impl AsRef<CipherCtxRef> for CipherCtx
impl AsRef<CmsContentInfoRef> for CmsContentInfo
impl AsRef<ConfRef> for Conf
impl AsRef<DsaSigRef> for DsaSig
impl AsRef<EcGroupRef> for EcGroup
impl AsRef<EcPointRef> for EcPoint
impl AsRef<EcdsaSigRef> for EcdsaSig
impl AsRef<LibCtxRef> for LibCtx
impl AsRef<MdCtxRef> for MdCtx
impl AsRef<OcspBasicResponseRef> for OcspBasicResponse
impl AsRef<OcspCertIdRef> for OcspCertId
impl AsRef<OcspOneReqRef> for OcspOneReq
impl AsRef<OcspRequestRef> for OcspRequest
impl AsRef<OcspResponseRef> for OcspResponse
impl AsRef<Pkcs7Ref> for Pkcs7
impl AsRef<Pkcs7SignedRef> for Pkcs7Signed
impl AsRef<Pkcs7SignerInfoRef> for Pkcs7SignerInfo
impl AsRef<Pkcs12Ref> for Pkcs12
impl AsRef<ProviderRef> for Provider
impl AsRef<SrtpProtectionProfileRef> for SrtpProtectionProfile
impl AsRef<SslContextRef> for SslContext
impl AsRef<SslRef> for Ssl
impl AsRef<SslSessionRef> for SslSession
impl AsRef<OpensslStringRef> for OpensslString
impl AsRef<X509StoreBuilderRef> for X509StoreBuilder
impl AsRef<X509StoreRef> for X509Store
impl AsRef<AccessDescriptionRef> for AccessDescription
impl AsRef<DistPointNameRef> for DistPointName
impl AsRef<DistPointRef> for DistPoint
impl AsRef<GeneralNameRef> for GeneralName
impl AsRef<X509AlgorithmRef> for X509Algorithm
impl AsRef<X509CrlRef> for X509Crl
impl AsRef<X509ExtensionRef> for X509Extension
impl AsRef<X509NameEntryRef> for X509NameEntry
impl AsRef<X509NameRef> for X509Name
impl AsRef<X509ObjectRef> for X509Object
impl AsRef<X509Ref> for X509
impl AsRef<X509Ref> for X509Ref
impl AsRef<X509ReqRef> for X509Req
impl AsRef<X509RevokedRef> for X509Revoked
impl AsRef<X509StoreContextRef> for X509StoreContext
impl AsRef<X509VerifyParamRef> for X509VerifyParam
impl AsRef<Opts> for Opts
impl AsRef<TcpStream> for tokio::net::tcp::split::ReadHalf<'_>
impl AsRef<TcpStream> for tokio::net::tcp::split::WriteHalf<'_>
impl AsRef<TcpStream> for tokio::net::tcp::split_owned::OwnedReadHalf
impl AsRef<TcpStream> for tokio::net::tcp::split_owned::OwnedWriteHalf
impl AsRef<TcpStream> for TcpStream
impl AsRef<UnixStream> for tokio::net::unix::split::ReadHalf<'_>
impl AsRef<UnixStream> for tokio::net::unix::split::WriteHalf<'_>
impl AsRef<UnixStream> for tokio::net::unix::split_owned::OwnedReadHalf
impl AsRef<UnixStream> for tokio::net::unix::split_owned::OwnedWriteHalf
impl AsRef<UnixStream> for UnixStream
impl AsRef<Semaphore> for PollSemaphore
impl AsRef<[u8]> for str
impl AsRef<[u8]> for ByteStr
impl AsRef<[u8]> for ByteString
impl AsRef<[u8]> for String
impl AsRef<[u8]> for BStr
impl AsRef<[u8]> for BString
impl AsRef<[u8]> for Bytes
impl AsRef<[u8]> for BytesMut
impl AsRef<[u8]> for h2::ext::Protocol
impl AsRef<[u8]> for HeaderName
impl AsRef<[u8]> for HeaderValue
impl AsRef<[u8]> for ReasonPhrase
impl AsRef<[u8]> for hyper::ext::Protocol
http2 only.impl AsRef<[u8]> for DigestBytes
impl AsRef<[u8]> for OpensslString
impl AsRef<[u8]> for OpensslStringRef
impl AsRef<[u8]> for Output
impl AsRef<[u8]> for Literal
impl AsRef<[u8]> for ByteBuf
impl AsRef<[u8]> for UncasedStr
impl AsRef<dyn Error + Send + Sync> for Error
std or non-anyhow_no_core_error only.impl AsRef<dyn Error> for Error
std or non-anyhow_no_core_error only.impl<'a> AsRef<str> for alloc::string::Drain<'a>
impl<'a> AsRef<str> for Name<'a>
impl<'a> AsRef<str> for Ident<'a>
impl<'a> AsRef<str> for Salt<'a>
impl<'a> AsRef<str> for Value<'a>
impl<'a> AsRef<[u8]> for alloc::string::Drain<'a>
impl<'a, T> AsRef<ZeroSlice<T>> for ZeroVec<'a, T>where
T: AsULE,
impl<'a, T> AsRef<[<T as AsULE>::ULE]> for ZeroVec<'a, T>where
T: AsULE,
impl<'a, T, A> AsRef<[T]> for alloc::vec::drain::Drain<'a, T, A>where
A: Allocator,
impl<A> AsRef<[<A as Array>::Item]> for SmallVec<A>where
A: Array,
impl<F> AsRef<Path> for NamedTempFile<F>
impl<I, A> AsRef<[A]> for IndexSlice<I, [A]>where
I: Idx,
impl<I, A> AsRef<[A]> for IndexVec<I, A>where
I: Idx,
impl<I, A> AsRef<IndexSlice<I, [A]>> for IndexVec<I, A>where
I: Idx,
impl<L, R> AsRef<str> for Either<L, R>
impl<L, R> AsRef<OsStr> for Either<L, R>
std only.Requires crate feature std.
impl<L, R> AsRef<CStr> 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 U128<O>
impl<S> AsRef<str> for UniCase<S>
impl<S> AsRef<str> for Ascii<S>
impl<Store> AsRef<ZeroAsciiIgnoreCaseTrie<[u8]>> for ZeroAsciiIgnoreCaseTrie<Store>
impl<Store> AsRef<ZeroTrieExtendedCapacity<[u8]>> for ZeroTrieExtendedCapacity<Store>
impl<Store> AsRef<ZeroTriePerfectHash<[u8]>> for ZeroTriePerfectHash<Store>
impl<Store> AsRef<ZeroTrieSimpleAscii<[u8]>> for ZeroTrieSimpleAscii<Store>
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 otter_nodejs_tests::inventory::core::slice::Iter<'_, T>
impl<T> AsRef<[T]> for IterMut<'_, T>
impl<T> AsRef<str> for Port<T>
impl<T> AsRef<DhRef<T>> for Dh<T>
impl<T> AsRef<DsaRef<T>> for Dsa<T>
impl<T> AsRef<EcKeyRef<T>> for EcKey<T>
impl<T> AsRef<PKeyRef<T>> for PKey<T>
impl<T> AsRef<PkeyCtxRef<T>> for PkeyCtx<T>
impl<T> AsRef<RsaRef<T>> for Rsa<T>
impl<T> AsRef<StackRef<T>> for Stack<T>where
T: Stackable,
impl<T> AsRef<X509LookupMethodRef<T>> for X509LookupMethod<T>
impl<T> AsRef<X509LookupRef<T>> for X509Lookup<T>
impl<T> AsRef<ZeroSlice<T>> for &[<T as AsULE>::ULE]where
T: AsULE,
impl<T> AsRef<T> for Cow<'_, T>
impl<T> AsRef<T> for NotNan<T>where
T: Float,
impl<T> AsRef<T> for OrderedFloat<T>where
T: Float,
impl<T> AsRef<T> for SyncView<T>
impl<T> AsRef<T> for Owned<T>
impl<T> AsRef<[u8]> for Window<T>
impl<T> AsRef<[Cell<T>]> for Cell<[T]>
impl<T, A> AsRef<[T]> for IntoIter<T, A>where
A: Allocator,
impl<T, A> AsRef<[T]> for Vec<T, A>where
A: Allocator,
impl<T, A> AsRef<Vec<T, A>> for Vec<T, A>where
A: Allocator,
impl<T, A> AsRef<T> for Arc<T, A>
impl<T, A> AsRef<T> for 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 UniqueArc<T, A>
impl<T, F> AsRef<VarZeroSlice<T, F>> for VarZeroSlice<T, F>where
F: VarZeroVecFormat,
T: ?Sized,
impl<T, N> AsRef<[T]> for GenericArray<T, N>where
N: ArrayLength<T>,
impl<T, U> AsRef<U> for &T
impl<T, U> AsRef<U> for &mut T
impl<T, const CAP: usize> AsRef<[T]> for 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.