tracing::stdlib::ops

Trait Deref

1.0.0 · Source
pub trait Deref {
    type Target: ?Sized;

    // Required method
    fn deref(&self) -> &Self::Target;
}
Expand description

Used for immutable dereferencing operations, like *v.

In addition to being used for explicit dereferencing operations with the (unary) * operator in immutable contexts, Deref is also used implicitly by the compiler in many circumstances. This mechanism is called Deref coercion”. In mutable contexts, DerefMut is used and mutable deref coercion similarly occurs.

Warning: Deref coercion is a powerful language feature which has far-reaching implications for every type that implements Deref. The compiler will silently insert calls to Deref::deref. For this reason, one should be careful about implementing Deref and only do so when deref coercion is desirable. See below for advice on when this is typically desirable or undesirable.

Types that implement Deref or DerefMut are often called “smart pointers” and the mechanism of deref coercion has been specifically designed to facilitate the pointer-like behavior that name suggests. Often, the purpose of a “smart pointer” type is to change the ownership semantics of a contained value (for example, Rc or Cow) or the storage semantics of a contained value (for example, Box).

§Deref coercion

If T implements Deref<Target = U>, and v is a value of type T, then:

  • In immutable contexts, *v (where T is neither a reference nor a raw pointer) is equivalent to *Deref::deref(&v).
  • Values of type &T are coerced to values of type &U
  • T implicitly implements all the methods of the type U which take the &self receiver.

For more details, visit the chapter in The Rust Programming Language as well as the reference sections on the dereference operator, method resolution, and type coercions.

§When to implement Deref or DerefMut

The same advice applies to both deref traits. In general, deref traits should be implemented if:

  1. a value of the type transparently behaves like a value of the target type;
  2. the implementation of the deref function is cheap; and
  3. users of the type will not be surprised by any deref coercion behavior.

In general, deref traits should not be implemented if:

  1. the deref implementations could fail unexpectedly; or
  2. the type has methods that are likely to collide with methods on the target type; or
  3. committing to deref coercion as part of the public API is not desirable.

Note that there’s a large difference between implementing deref traits generically over many target types, and doing so only for specific target types.

Generic implementations, such as for Box<T> (which is generic over every type and dereferences to T) should be careful to provide few or no methods, since the target type is unknown and therefore every method could collide with one on the target type, causing confusion for users. impl<T> Box<T> has no methods (though several associated functions), partly for this reason.

Specific implementations, such as for String (whose Deref implementation has Target = str) can have many methods, since avoiding collision is much easier. String and str both have many methods, and String additionally behaves as if it has every method of str because of deref coercion. The implementing type may also be generic while the implementation is still specific in this sense; for example, Vec<T> dereferences to [T], so methods of T are not applicable.

Consider also that deref coercion means that deref traits are a much larger part of a type’s public API than any other trait as it is implicitly called by the compiler. Therefore, it is advisable to consider whether this is something you are comfortable supporting as a public API.

The AsRef and Borrow traits have very similar signatures to Deref. It may be desirable to implement either or both of these, whether in addition to or rather than deref traits. See their documentation for details.

§Fallibility

This trait’s method should never unexpectedly fail. Deref coercion means the compiler will often insert calls to Deref::deref implicitly. Failure during dereferencing can be extremely confusing when Deref is invoked implicitly. In the majority of uses it should be infallible, though it may be acceptable to panic if the type is misused through programmer error, for example.

However, infallibility is not enforced and therefore not guaranteed. As such, unsafe code should not rely on infallibility in general for soundness.

§Examples

A struct with a single field which is accessible by dereferencing the struct.

use std::ops::Deref;

struct DerefExample<T> {
    value: T
}

impl<T> Deref for DerefExample<T> {
    type Target = T;

    fn deref(&self) -> &Self::Target {
        &self.value
    }
}

let x = DerefExample { value: 'a' };
assert_eq!('a', *x);

Required Associated Types§

1.0.0 · Source

type Target: ?Sized

The resulting type after dereferencing.

Required Methods§

1.0.0 · Source

fn deref(&self) -> &Self::Target

Dereferences the value.

Implementors§

Source§

impl Deref for EnteredSpan

1.0.0 · Source§

impl Deref for CString

1.0.0 · Source§

impl Deref for OsString

1.0.0 · Source§

impl Deref for PathBuf

1.0.0 · Source§

impl Deref for String

1.36.0 · Source§

impl<'a> Deref for IoSlice<'a>

1.36.0 · Source§

impl<'a> Deref for IoSliceMut<'a>

Source§

impl<'a, 'f> Deref for VaList<'a, 'f>
where 'f: 'a,

1.0.0 · Source§

impl<B> Deref for Cow<'_, B>
where B: ToOwned + ?Sized, <B as ToOwned>::Owned: Borrow<B>,

1.33.0 · Source§

impl<Ptr> Deref for Pin<Ptr>
where Ptr: Deref,

Source§

type Target = <Ptr as Deref>::Target

1.0.0 · Source§

impl<T> Deref for &T
where T: ?Sized,

1.0.0 · Source§

impl<T> Deref for &mut T
where T: ?Sized,

Source§

impl<T> Deref for ThinBox<T>
where T: ?Sized,

1.0.0 · Source§

impl<T> Deref for Ref<'_, T>
where T: ?Sized,

1.0.0 · Source§

impl<T> Deref for RefMut<'_, T>
where T: ?Sized,

1.20.0 · Source§

impl<T> Deref for ManuallyDrop<T>
where T: ?Sized,

1.9.0 · Source§

impl<T> Deref for AssertUnwindSafe<T>

Source§

impl<T> Deref for MappedMutexGuard<'_, T>
where T: ?Sized,

Source§

impl<T> Deref for MappedRwLockReadGuard<'_, T>
where T: ?Sized,

Source§

impl<T> Deref for MappedRwLockWriteGuard<'_, T>
where T: ?Sized,

1.0.0 · Source§

impl<T> Deref for MutexGuard<'_, T>
where T: ?Sized,

Source§

impl<T> Deref for ReentrantLockGuard<'_, T>
where T: ?Sized,

1.0.0 · Source§

impl<T> Deref for RwLockReadGuard<'_, T>
where T: ?Sized,

1.0.0 · Source§

impl<T> Deref for RwLockWriteGuard<'_, T>
where T: ?Sized,

1.0.0 · Source§

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

1.12.0 · Source§

impl<T, A> Deref for PeekMut<'_, T, A>
where T: Ord, A: Allocator,

1.0.0 · Source§

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

Source§

impl<T, A> Deref for UniqueRc<T, A>
where A: Allocator, T: ?Sized,

1.0.0 · Source§

impl<T, A> Deref for Arc<T, A>
where A: Allocator, T: ?Sized,

1.0.0 · Source§

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

Source§

impl<T, F> Deref for once_cell::sync::Lazy<T, F>
where F: FnOnce() -> T,

Source§

impl<T, F> Deref for once_cell::unsync::Lazy<T, F>
where F: FnOnce() -> T,

1.80.0 · Source§

impl<T, F> Deref for LazyCell<T, F>
where F: FnOnce() -> T,

1.80.0 · Source§

impl<T, F> Deref for LazyLock<T, F>
where F: FnOnce() -> T,

impl<'a, T: ?Sized> Deref for Ref<'a, T>

impl<'a, T: ?Sized> Deref for RefMut<'a, T>

impl<K, V, S> Deref for AHashMap<K, V, S>

impl<T, S> Deref for AHashSet<T, S>

impl<'a, T> Deref for AllocatedStackMemory<'a, T>

impl<T, A: Allocator> Deref for Vec<T, A>

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

impl<T, const CAP: usize> Deref for ArrayVec<T, CAP>

impl<const CAP: usize> Deref for ArrayString<CAP>

impl<'b, T: ?Sized> Deref for AtomicRef<'b, T>

impl<'b, T: ?Sized> Deref for AtomicRefMut<'b, T>

impl<'a> Deref for Curve25519SeedBin<'a>

impl<'a> Deref for EcPrivateKeyBin<'a>

impl<'a> Deref for EcPrivateKeyRfc5915Der<'a>

impl<'a> Deref for Pkcs8V1Der<'a>

impl<'a> Deref for Pkcs8V2Der<'a>

impl<'a> Deref for PqdsaPrivateKeyRaw<'a>

impl<'a> Deref for PqdsaSeedRaw<'a>

impl<'a> Deref for PublicKeyX509Der<'a>

impl<'a> Deref for EncapsulationKeyBytes<'a>

impl<T> Deref for ConstPointer<T>

impl<T> Deref for MutPointer<T>

impl<T: Zeroize> Deref for ZeroizeBoxSlice<T>

impl Deref for Mmap

impl<'a, B: BitBlock> Deref for MutBorrowedBit<'a, B>

impl Deref for BoxBytes

impl Deref for Bytes

impl Deref for BytesMut

impl<T> Deref for NoIoDrop<T>

impl<T: AsRawFd> Deref for FdWrapper<T>

impl<T> Deref for TruncatedDebug<T>

impl<C> Deref for Receiver<C>

impl<C> Deref for Sender<C>

impl<T: ?Sized + Pointable> Deref for Owned<T>

impl<T> Deref for CachePadded<T>

impl<T: ?Sized> Deref for ShardedLockReadGuard<'_, T>

impl<T: ?Sized> Deref for ShardedLockWriteGuard<'_, T>

impl Deref for CowRcStr<'_>

impl Deref for PathList

impl<T> Deref for SpannedValue<T>

impl<T> Deref for Unsafe<T>

impl Deref for Bytes

impl Deref for BarState

impl<L, R> Deref for Either<L, R>
where L: Deref, R: Deref<Target = L::Target>,

impl Deref for Galley

impl<T> Deref for TryLock<'_, T>

impl<S: Stream + Unpin> Deref for BlockingStream<S>

impl Deref for WakerRef<'_>

impl Deref for WakerRef<'_>

impl<T> Deref for BiLockGuard<'_, T>

impl<T: ?Sized> Deref for MutexGuard<'_, T>

impl<T: ?Sized> Deref for OwnedMutexGuard<T>

impl<T: ?Sized, U: ?Sized> Deref for MappedMutexGuard<'_, T, U>

impl<T, N> Deref for GenericArray<T, N>
where N: ArrayLength<T>,

impl Deref for Effect

impl Deref for Attributes

impl<'a, R: Reader> Deref for UnitRef<'a, R>

impl<'input, Endian> Deref for EndianSlice<'input, Endian>
where Endian: Endianity,

impl<A: ArrayLike> Deref for ArrayVec<A>

impl Deref for StrV

impl Deref for ByteArray

impl Deref for Bytes

impl Deref for GStr

impl Deref for GString

impl Deref for GStringPtr

impl Deref for ValueArray

impl Deref for ILong

impl Deref for ULong

impl Deref for BoxedValue

impl Deref for SendValue

impl Deref for ObjectPath

impl Deref for Signature

impl<T> Deref for BorrowedObject<'_, T>

impl<T> Deref for Borrowed<T>

impl<T, P> Deref for TypedObjectRef<T, P>

impl<T: 'static, MM: BoxedMemoryManager<Target = T>> Deref for Boxed<T, MM>

impl<T: IsClass> Deref for ClassRef<'_, T>

impl<T: IsInterface> Deref for InterfaceRef<'_, T>

impl<T: ObjectType> Deref for SendWeakRef<T>

impl<T: ParentClassIs> Deref for Class<T>

impl<T: TransparentType> Deref for Slice<T>

impl Deref for Buffer

impl Deref for BufferList

impl Deref for Caps

impl Deref for Context

impl Deref for Buffersize

impl Deref for Caps

impl Deref for Caps<Event>

impl Deref for CustomBoth

impl Deref for Eos

impl Deref for Eos<Event>

impl Deref for Event

impl Deref for FlushStart

impl Deref for FlushStop

impl Deref for Gap

impl Deref for Gap<Event>

impl Deref for Latency

impl Deref for Latency<Event>

impl Deref for Navigation

impl Deref for Other

impl Deref for Other<Event>

impl Deref for Protection

impl Deref for Qos

impl Deref for Qos<Event>

impl Deref for Seek

impl Deref for Seek<Event>

impl Deref for Segment

impl Deref for Segment<Event>

impl Deref for Step

impl Deref for Step<Event>

impl Deref for Tag

impl Deref for Tag<Event>

impl Deref for Toc

impl Deref for Toc<Event>

impl Deref for TocSelect

impl Deref for Buffers

impl Deref for Bytes

impl Deref for ClockTime

impl Deref for Default

impl Deref for Other

impl Deref for Percent

impl Deref for Undefined

impl Deref for Memory

impl Deref for AsyncDone

impl Deref for AsyncStart

impl Deref for Buffering

impl Deref for ClockLost

impl Deref for Element

impl Deref for Eos

impl Deref for Eos<Message>

impl Deref for Error

impl Deref for Error<Message>

impl Deref for Info

impl Deref for Info<Message>

impl Deref for Latency

impl Deref for Message

impl Deref for NewClock

impl Deref for Progress

impl Deref for Qos

impl Deref for Qos<Message>

impl Deref for Redirect

impl Deref for ResetTime

impl Deref for StateDirty

impl Deref for StepDone

impl Deref for StepStart

impl Deref for Tag

impl Deref for Tag<Message>

impl Deref for Toc

impl Deref for Toc<Message>

impl Deref for Warning

impl Deref for MiniObject

impl Deref for AcceptCaps

impl Deref for Allocation

impl Deref for Bitrate

impl Deref for Bitrate<Query>

impl Deref for Buffering

impl Deref for Caps

impl Deref for Caps<Query>

impl Deref for Context

impl Deref for Context<Query>

impl Deref for Convert

impl Deref for Convert<Query>

impl Deref for Custom

impl Deref for Custom<Query>

impl Deref for Drain

impl Deref for Drain<Query>

impl Deref for Duration

impl Deref for Duration<Query>

impl Deref for Formats

impl Deref for Formats<Query>

impl Deref for Latency

impl Deref for Latency<Query>

impl Deref for Other

impl Deref for Other<Query>

impl Deref for Position

impl Deref for Position<Query>

impl Deref for Query

impl Deref for Scheduling

impl Deref for Seeking

impl Deref for Seeking<Query>

impl Deref for Segment

impl Deref for Segment<Query>

impl Deref for Uri

impl Deref for Uri<Query>

impl Deref for Sample

impl Deref for Array

impl Deref for ArrayRef<'_>

impl Deref for Bitmask

impl Deref for Fraction

impl Deref for List

impl Deref for ListRef<'_>

impl Deref for Structure

impl Deref for TagList

impl Deref for Toc

impl Deref for TocEntry

impl<T> Deref for BufferMap<'_, T>

impl<T> Deref for MappedBuffer<T>

impl<T> Deref for MappedMemory<T>

impl<T> Deref for MemoryMap<'_, T>

impl<T> Deref for MetaRef<'_, T>

impl<T> Deref for ObjectLockGuard<'_, T>

impl<T, U> Deref for MetaRefMut<'_, T, U>

impl Deref for UniqueAdapterMap<'_>

impl Deref for GLMemory

impl<'a> Deref for GLVideoFrameRef<&'a mut BufferRef>

impl Deref for SDPMedia

impl Deref for SDPMessage

impl<'a> Deref for VideoFrameRef<&'a mut BufferRef>

impl<'a> Deref for Ptr<'a>

impl<T, F> Deref for ScopeGuard<T, F>
where F: FnMut(&mut T),

impl Deref for ByteStr

impl<T> Deref for Serde<T>
where for<'de> De<T>: Deserialize<'de>, for<'a> Ser<'a, T>: Serialize,

impl<'a, C> Deref for Ref<'a, C>

impl Deref for Private

impl Deref for Attributes

impl Deref for Variants

impl<T> Deref for ShortBoxSlice<T>

impl Deref for Cart

impl<I> Deref for SubImage<I>
where I: Deref,

impl<P, Container> Deref for ImageBuffer<P, Container>
where P: Pixel, Container: Deref<Target = [P::Subpixel]>,

impl Deref for FdGuard

impl Deref for PID

impl Deref for ROUTER

impl<'a> Deref for StringCow<'a>

impl<'a, T> Deref for DumbCow<'a, T>

impl<T> Deref for ArcRefCell<T>

impl<T> Deref for Symbol<T>

impl<T> Deref for Symbol<'_, T>

impl<'a, R: RawMutex + 'a, G: GetThreadId + 'a, T: ?Sized + 'a> Deref for MappedReentrantMutexGuard<'a, R, G, T>

impl<'a, R: RawMutex + 'a, G: GetThreadId + 'a, T: ?Sized + 'a> Deref for ReentrantMutexGuard<'a, R, G, T>

impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Deref for MappedMutexGuard<'a, R, T>

impl<'a, R: RawMutex + 'a, T: ?Sized + 'a> Deref for MutexGuard<'a, R, T>

impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Deref for MappedRwLockReadGuard<'a, R, T>

impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Deref for MappedRwLockWriteGuard<'a, R, T>

impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Deref for RwLockReadGuard<'a, R, T>

impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Deref for RwLockWriteGuard<'a, R, T>

impl<'a, R: RawRwLockUpgrade + 'a, T: ?Sized + 'a> Deref for RwLockUpgradableReadGuard<'a, R, T>

impl<'a> Deref for CowBytes<'a>

impl Deref for Mmap

impl Deref for MmapMut

impl<T> Deref for IoSource<T>

impl Deref for IdVector

impl Deref for Stencil

impl<'a, T> Deref for Handle<'a, T>

impl<'a, T> Deref for MutableHandle<'a, T>

impl<'a, T: 'a + CustomTrace> Deref for CustomAutoRooterGuard<'a, T>

impl<'a, T: 'a + RootKind> Deref for RootedGuard<'a, T>

impl<'a, T: Traceable> Deref for RootedVec<'a, T>

impl<T> Deref for Handle<T>

impl<T> Deref for MutableHandle<T>

impl Deref for Block

impl<T: FloatCore> Deref for NotNan<T>

impl<T: FloatCore> Deref for OrderedFloat<T>

impl<'a, G> Deref for Frozen<'a, G>

impl<'b, T> Deref for Ptr<'b, T>

impl<'a, W: Write> Deref for ChunkOutput<'a, W>

impl<T> Deref for Metadata<'_, T>
where T: SmartDisplay + ?Sized,

impl<const SIZE: usize> Deref for WriteBuffer<SIZE>

impl<'a> Deref for Event<'a>

impl<'a> Deref for BytesCData<'a>

impl<'a> Deref for BytesDecl<'a>

impl<'a> Deref for BytesEnd<'a>

impl<'a> Deref for BytesPI<'a>

impl<'a> Deref for BytesStart<'a>

impl<'a> Deref for BytesText<'a>

impl<R> Deref for NsReader<R>

impl<T> Deref for IsaacArray<T>

impl<L> Deref for LatchRef<'_, L>

impl<'a, T: Send, F: Fn() -> T> Deref for PoolGuard<'a, T, F>

impl<T, F: Fn() -> T> Deref for Lazy<T, F>

impl Deref for Connection

impl Deref for Connection

impl Deref for BorrowedPayload<'_>

impl<'a> Deref for CertificateChain<'a>

impl<Data> Deref for ConnectionCommon<Data>

impl<T> Deref for Retrieved<T>

impl<T> Deref for ConnectionCommon<T>

impl Deref for CertificateDer<'_>

impl Deref for Der<'_>

impl<T, F, S> Deref for ScopeGuard<T, F, S>
where F: FnOnce(T), S: Strategy,

impl Deref for SelectorWrapper<'_>

impl Deref for Runtime

impl<'a, T: WeakReferenceable + 'a> Deref for WeakRefEntry<'a, T>

impl Deref for JSContext

impl Deref for ByteString

impl Deref for DOMString

impl Deref for USVString

impl<K: RecordKey, V> Deref for Record<K, V>

impl<T> Deref for Root<T>

impl<T: Float> Deref for Finite<T>

impl<T: DomObject> Deref for Dom<T>

impl<I, D> Deref for WlTyped<I, D>

impl Deref for ByteBuf

impl Deref for Bytes

impl<const N: usize> Deref for ByteArray<N>

impl<'b, 'c, T> Deref for Reference<'b, 'c, T>
where T: ?Sized + 'static,

impl<'key> Deref for Key<'key>

impl<'a, T> Deref for ArcBorrow<'a, T>

impl<T> Deref for UniqueArc<T>

impl<T: ?Sized> Deref for Arc<T>

impl Deref for ServoMedia

impl<A: Array> Deref for SmallVec<A>

impl Deref for SmolStr

impl Deref for Data

impl<'a> Deref for MaybeUninitSlice<'a>

impl<'s> Deref for SockRef<'s>

impl<const N: usize> Deref for CcidEndpoints<N>

impl<I: Invariant, B: AsRef<str>> Deref for Check<I, B>

impl<Static: StaticAtomSet> Deref for Atom<Static>

impl Deref for AttrValue

impl Deref for EMPTY

impl Deref for CssUrl

impl Deref for AtomString

impl<'a, 'i> Deref for NestedRuleParser<'a, 'i>

impl<'a, T: 'a> Deref for StyleStructRef<'a, T>

impl<E> Deref for SequentialTaskList<E>
where E: TElement,

impl<E: TElement> Deref for SendElement<E>

impl<I> Deref for CounterIncrement<I>

impl<I> Deref for CounterReset<I>

impl<I> Deref for CounterSet<I>

impl<N: TNode> Deref for SendNode<N>

impl<Set> Deref for GenericAtomIdent<Set>
where Set: StaticAtomSet,

impl<T> Deref for UnsafeBox<T>

impl<T> Deref for LayerOrderedMap<T>

impl<T> Deref for LayerOrderedVec<T>

impl Deref for OwnedStr

impl<T> Deref for ArcSlice<T>

impl<T> Deref for OwnedSlice<T>

impl<T: MallocSizeOf> Deref for Measurable<T>

impl Deref for And

impl Deref for At

impl Deref for Caret

impl Deref for Colon

impl Deref for Comma

impl Deref for Dollar

impl Deref for Dot

impl Deref for Eq

impl Deref for Gt

impl Deref for Lt

impl Deref for Minus

impl Deref for Not

impl Deref for Or

impl Deref for Percent

impl Deref for Plus

impl Deref for Pound

impl Deref for Question

impl Deref for Semi

impl Deref for Slash

impl Deref for Star

impl Deref for Tilde

impl Deref for Underscore

impl<'c, 'a> Deref for StepCursor<'c, 'a>

impl<T: ?Sized> Deref for NoDrop<T>

impl Deref for Disks

impl Deref for TempPath

impl<F, A> Deref for Tendril<F, A>
where F: SliceFormat, A: Atomicity,

impl<T> Deref for ThinVec<T>

impl<T> Deref for Spanned<T>

impl<T> Deref for Spanned<T>

impl Deref for Edge

impl<const N: usize> Deref for TinyAsciiStr<N>

impl Deref for AtomicU16

impl Deref for AtomicU32

impl Deref for WakerRef<'_>

impl<'a, T: ?Sized> Deref for MappedMutexGuard<'a, T>

impl<E: Source> Deref for PollEvented<E>

impl<S> Deref for WakerRef<'_, S>

impl<T> Deref for Ref<'_, T>

impl<T> Deref for CachePadded<T>

impl<T> Deref for LockGuard<'_, T>

impl<T: ?Sized> Deref for MutexGuard<'_, T>

impl<T: ?Sized> Deref for OwnedMutexGuard<T>

impl<T: ?Sized> Deref for RwLockMappedWriteGuard<'_, T>

impl<T: ?Sized> Deref for RwLockReadGuard<'_, T>

impl<T: ?Sized> Deref for RwLockWriteGuard<'_, T>

impl<T: ?Sized, U: ?Sized> Deref for OwnedMappedMutexGuard<T, U>

impl<T: ?Sized, U: ?Sized> Deref for OwnedRwLockMappedWriteGuard<T, U>

impl<T: ?Sized, U: ?Sized> Deref for OwnedRwLockReadGuard<T, U>

impl Deref for Key

impl Deref for KeyMut<'_>

impl<S> Deref for ImDocument<S>

impl<'a, T> Deref for Locked<'a, T>

impl<'a> Deref for Subtable1<'a>

impl<'a> Deref for Subtable4<'a>

impl<S> Deref for Ascii<S>

impl<S> Deref for UniCase<S>

impl<'a> Deref for EndEntityCert<'a>

impl<T> Deref for PrimaryArc<T>

impl<'a> Deref for RecordingGuard<'a>

impl<'a, T> Deref for MutexGuard<'a, T>

impl<'a, T> Deref for RwLockReadGuard<'a, T>

impl<'a, T> Deref for RwLockWriteGuard<'a, T>

impl<'a, T> Deref for MutexGuard<'a, T>

impl<'a, T> Deref for RwLockReadGuard<'a, T>

impl<'a, T> Deref for RwLockWriteGuard<'a, T>

impl<'a> Deref for AdapterContextLock<'a>

impl Deref for XkbKeymap

impl Deref for XkbContext

impl Deref for DeviceInfo<'_>

impl Deref for Window

impl<T> Deref for XSmartPointer<'_, T>

impl<T> Deref for Lazy<T>

impl Deref for BStr

impl Deref for Bytes

impl<I> Deref for LocatingSlice<I>

impl<I> Deref for Partial<I>

impl<I, S> Deref for Stateful<I, S>

impl<T> Deref for TokenSlice<'_, T>

impl Deref for FONT_CACHE

impl Deref for CSlice

impl<C0, C1, T> Deref for EitherCart<C0, C1>
where C0: Deref<Target = T>, C1: Deref<Target = T>,

impl<T: 'static> Deref for KindaSortaDangling<T>

impl<B, T> Deref for Ref<B, [T]>
where B: ByteSlice, T: FromBytes,

impl<B, T> Deref for Ref<B, T>
where B: ByteSlice, T: FromBytes,

impl<T: Unaligned> Deref for Unalign<T>

impl<Z> Deref for Zeroizing<Z>
where Z: Zeroize,

impl<'a> Deref for FlexZeroVec<'a>

impl<'a, T: AsULE> Deref for ZeroVec<'a, T>

impl<T: VarULE + ?Sized, F: VarZeroVecFormat> Deref for VarZeroVec<'_, T, F>