Drop

Trait Drop 

1.6.0 (const: unstable) · Source
pub trait Drop {
    // Required method
    fn drop(&mut self);
}
Expand description

Custom code within the destructor.

When a value is no longer needed, Rust will run a “destructor” on that value. The most common way that a value is no longer needed is when it goes out of scope. Destructors may still run in other circumstances, but we’re going to focus on scope for the examples here. To learn about some of those other cases, please see the reference section on destructors.

This destructor consists of two components:

  • A call to Drop::drop for that value, if this special Drop trait is implemented for its type.
  • The automatically generated “drop glue” which recursively calls the destructors of all the fields of this value.

As Rust automatically calls the destructors of all contained fields, you don’t have to implement Drop in most cases. But there are some cases where it is useful, for example for types which directly manage a resource. That resource may be memory, it may be a file descriptor, it may be a network socket. Once a value of that type is no longer going to be used, it should “clean up” its resource by freeing the memory or closing the file or socket. This is the job of a destructor, and therefore the job of Drop::drop.

§Examples

To see destructors in action, let’s take a look at the following program:

struct HasDrop;

impl Drop for HasDrop {
    fn drop(&mut self) {
        println!("Dropping HasDrop!");
    }
}

struct HasTwoDrops {
    one: HasDrop,
    two: HasDrop,
}

impl Drop for HasTwoDrops {
    fn drop(&mut self) {
        println!("Dropping HasTwoDrops!");
    }
}

fn main() {
    let _x = HasTwoDrops { one: HasDrop, two: HasDrop };
    println!("Running!");
}

Rust will first call Drop::drop for _x and then for both _x.one and _x.two, meaning that running this will print

Running!
Dropping HasTwoDrops!
Dropping HasDrop!
Dropping HasDrop!

Even if we remove the implementation of Drop for HasTwoDrop, the destructors of its fields are still called. This would result in

Running!
Dropping HasDrop!
Dropping HasDrop!

§You cannot call Drop::drop yourself

Because Drop::drop is used to clean up a value, it may be dangerous to use this value after the method has been called. As Drop::drop does not take ownership of its input, Rust prevents misuse by not allowing you to call Drop::drop directly.

In other words, if you tried to explicitly call Drop::drop in the above example, you’d get a compiler error.

If you’d like to explicitly call the destructor of a value, mem::drop can be used instead.

§Drop order

Which of our two HasDrop drops first, though? For structs, it’s the same order that they’re declared: first one, then two. If you’d like to try this yourself, you can modify HasDrop above to contain some data, like an integer, and then use it in the println! inside of Drop. This behavior is guaranteed by the language.

Unlike for structs, local variables are dropped in reverse order:

struct Foo;

impl Drop for Foo {
    fn drop(&mut self) {
        println!("Dropping Foo!")
    }
}

struct Bar;

impl Drop for Bar {
    fn drop(&mut self) {
        println!("Dropping Bar!")
    }
}

fn main() {
    let _foo = Foo;
    let _bar = Bar;
}

This will print

Dropping Bar!
Dropping Foo!

Please see the reference for the full rules.

§Copy and Drop are exclusive

You cannot implement both Copy and Drop on the same type. Types that are Copy get implicitly duplicated by the compiler, making it very hard to predict when, and how often destructors will be executed. As such, these types cannot have destructors.

§Drop check

Dropping interacts with the borrow checker in subtle ways: when a type T is being implicitly dropped as some variable of this type goes out of scope, the borrow checker needs to ensure that calling T’s destructor at this moment is safe. In particular, it also needs to be safe to recursively drop all the fields of T. For example, it is crucial that code like the following is being rejected:

use std::cell::Cell;

struct S<'a>(Cell<Option<&'a S<'a>>>, Box<i32>);
impl Drop for S<'_> {
    fn drop(&mut self) {
        if let Some(r) = self.0.get() {
            // Print the contents of the `Box` in `r`.
            println!("{}", r.1);
        }
    }
}

fn main() {
    // Set up two `S` that point to each other.
    let s1 = S(Cell::new(None), Box::new(42));
    let s2 = S(Cell::new(Some(&s1)), Box::new(42));
    s1.0.set(Some(&s2));
    // Now they both get dropped. But whichever is the 2nd one
    // to be dropped will access the `Box` in the first one,
    // which is a use-after-free!
}

The Nomicon discusses the need for drop check in more detail.

To reject such code, the “drop check” analysis determines which types and lifetimes need to still be live when T gets dropped. The exact details of this analysis are not yet stably guaranteed and subject to change. Currently, the analysis works as follows:

  • If T has no drop glue, then trivially nothing is required to be live. This is the case if neither T nor any of its (recursive) fields have a destructor (impl Drop). PhantomData, arrays of length 0 and ManuallyDrop are considered to never have a destructor, no matter their field type.
  • If T has drop glue, then, for all types U that are owned by any field of T, recursively add the types and lifetimes that need to be live when U gets dropped. The set of owned types is determined by recursively traversing T:
    • Recursively descend through PhantomData, Box, tuples, and arrays (excluding arrays of length 0).
    • Stop at reference and raw pointer types as well as function pointers and function items; they do not own anything.
    • Stop at non-composite types (type parameters that remain generic in the current context and base types such as integers and bool); these types are owned.
    • When hitting an ADT with impl Drop, stop there; this type is owned.
    • When hitting an ADT without impl Drop, recursively descend to its fields. (For an enum, consider all fields of all variants.)
  • Furthermore, if T implements Drop, then all generic (lifetime and type) parameters of T must be live.

In the above example, the last clause implies that 'a must be live when S<'a> is dropped, and hence the example is rejected. If we remove the impl Drop, the liveness requirement disappears and the example is accepted.

There exists an unstable way for a type to opt-out of the last clause; this is called “drop check eyepatch” or may_dangle. For more details on this nightly-only feature, see the discussion in the Nomicon.

Required Methods§

1.0.0 · Source

fn drop(&mut self)

Executes the destructor for this type.

This method is called implicitly when the value goes out of scope, and cannot be called explicitly (this is compiler error E0040). However, the mem::drop function in the prelude can be used to call the argument’s Drop implementation.

When this method has been called, self has not yet been deallocated. That only happens after the method is over. If this wasn’t the case, self would be a dangling reference.

§Panics

Implementations should generally avoid panic!ing, because drop() may itself be called during unwinding due to a panic, and if the drop() panics in that situation (a “double panic”), this will likely abort the program. It is possible to check panicking() first, which may be desirable for a Drop implementation that is reporting a bug of the kind “you didn’t finish using this before it was dropped”; but most types should simply clean up their owned allocations or other resources and return normally from drop(), regardless of what state they are in.

Note that even if this panics, the value is considered to be dropped; you must not cause drop to be called again. This is normally automatically handled by the compiler, but when using unsafe code, can sometimes occur unintentionally, particularly when using ptr::drop_in_place.

Implementors§

Source§

impl Drop for LocalWaker

1.36.0 · Source§

impl Drop for Waker

1.13.0 · Source§

impl Drop for CString

1.6.0 · Source§

impl Drop for alloc::string::Drain<'_>

1.63.0 · Source§

impl Drop for OwnedFd

Source§

impl Drop for Error

§

impl Drop for AdvisoryLockingAdvisoryLockResponder

Set the the channel to be shutdown (see [AdvisoryLockingControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for ArchiveAccessorWaitForReadyResponder

Set the the channel to be shutdown (see [ArchiveAccessorControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for AtomicFutureHandle<'_>

§

impl Drop for BatchIteratorGetNextResponder

Set the the channel to be shutdown (see [BatchIteratorControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for BatchIteratorWaitForReadyResponder

Set the the channel to be shutdown (see [BatchIteratorControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for BootControllerNotifyResponder

Set the the channel to be shutdown (see [BootControllerControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CapabilityStoreConnectorCreateResponder

Set the the channel to be shutdown (see [CapabilityStoreControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CapabilityStoreConnectorOpenResponder

Set the the channel to be shutdown (see [CapabilityStoreControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CapabilityStoreDictionaryCopyResponder

Set the the channel to be shutdown (see [CapabilityStoreControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CapabilityStoreDictionaryCreateResponder

Set the the channel to be shutdown (see [CapabilityStoreControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CapabilityStoreDictionaryDrainResponder

Set the the channel to be shutdown (see [CapabilityStoreControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CapabilityStoreDictionaryEnumerateResponder

Set the the channel to be shutdown (see [CapabilityStoreControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CapabilityStoreDictionaryGetResponder

Set the the channel to be shutdown (see [CapabilityStoreControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CapabilityStoreDictionaryInsertResponder

Set the the channel to be shutdown (see [CapabilityStoreControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CapabilityStoreDictionaryKeysResponder

Set the the channel to be shutdown (see [CapabilityStoreControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CapabilityStoreDictionaryLegacyExportResponder

Set the the channel to be shutdown (see [CapabilityStoreControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CapabilityStoreDictionaryLegacyImportResponder

Set the the channel to be shutdown (see [CapabilityStoreControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CapabilityStoreDictionaryRemoveResponder

Set the the channel to be shutdown (see [CapabilityStoreControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CapabilityStoreDirConnectorCreateResponder

Set the the channel to be shutdown (see [CapabilityStoreControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CapabilityStoreDirConnectorOpenResponder

Set the the channel to be shutdown (see [CapabilityStoreControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CapabilityStoreDropResponder

Set the the channel to be shutdown (see [CapabilityStoreControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CapabilityStoreDuplicateResponder

Set the the channel to be shutdown (see [CapabilityStoreControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CapabilityStoreExportResponder

Set the the channel to be shutdown (see [CapabilityStoreControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CapabilityStoreImportResponder

Set the the channel to be shutdown (see [CapabilityStoreControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for ChildIteratorNextResponder

Set the the channel to be shutdown (see [ChildIteratorControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CloseableCloseResponder

Set the the channel to be shutdown (see [CloseableControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for ConfigOverrideSetStructuredConfigResponder

Set the the channel to be shutdown (see [ConfigOverrideControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for ConfigOverrideUnsetStructuredConfigResponder

Set the the channel to be shutdown (see [ConfigOverrideControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for ConnectorRouterRouteResponder

Set the the channel to be shutdown (see [ConnectorRouterControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for Container

§

impl Drop for ControllerDestroyResponder

Set the the channel to be shutdown (see [ControllerControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for ControllerGetExposedDictionaryResponder

Set the the channel to be shutdown (see [ControllerControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for ControllerIsStartedResponder

Set the the channel to be shutdown (see [ControllerControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for ControllerOpenExposedDirResponder

Set the the channel to be shutdown (see [ControllerControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for ControllerStartResponder

Set the the channel to be shutdown (see [ControllerControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for CrashIntrospectFindComponentByThreadKoidResponder

Set the the channel to be shutdown (see [CrashIntrospectControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DataRouterRouteResponder

Set the the channel to be shutdown (see [DataRouterControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DictionaryDrainIteratorGetNextResponder

Set the the channel to be shutdown (see [DictionaryDrainIteratorControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DictionaryEnumerateIteratorGetNextResponder

Set the the channel to be shutdown (see [DictionaryEnumerateIteratorControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DictionaryKeysIteratorGetNextResponder

Set the the channel to be shutdown (see [DictionaryKeysIteratorControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DictionaryRouterRouteResponder

Set the the channel to be shutdown (see [DictionaryRouterControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirConnectorRouterRouteResponder

Set the the channel to be shutdown (see [DirConnectorRouterControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirEntryRouterRouteResponder

Set the the channel to be shutdown (see [DirEntryRouterControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryAdvisoryLockResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryCloseResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryCreateSymlinkResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryDeprecatedGetAttrResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryDeprecatedGetFlagsResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryDeprecatedSetAttrResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryDeprecatedSetFlagsResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryGetAttributesResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryGetExtendedAttributeResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryGetFlagsResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryGetTokenResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryLinkResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryQueryFilesystemResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryQueryResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryReadDirentsResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryRemoveExtendedAttributeResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryRenameResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryRewindResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryRouterRouteResponder

Set the the channel to be shutdown (see [DirectoryRouterControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectorySetExtendedAttributeResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectorySetFlagsResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectorySyncResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryUnlinkResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryUpdateAttributesResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for DirectoryWatchResponder

Set the the channel to be shutdown (see [DirectoryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for Enter

§

impl Drop for EpochGuard<'_>

§

impl Drop for EventStreamGetNextResponder

Set the the channel to be shutdown (see [EventStreamControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for EventStreamWaitForReadyResponder

Set the the channel to be shutdown (see [EventStreamControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for ExtendedAttributeIteratorGetNextResponder

Set the the channel to be shutdown (see [ExtendedAttributeIteratorControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileAdvisoryLockResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileAllocateResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileCloseResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileDeprecatedGetAttrResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileDeprecatedGetFlagsResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileDeprecatedSetAttrResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileDeprecatedSetFlagsResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileDescribeResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileEnableVerityResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileGetAttributesResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileGetBackingMemoryResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileGetExtendedAttributeResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileGetFlagsResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileLinkIntoResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileQueryFilesystemResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileQueryResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileReadAtResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileReadResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileRemoveExtendedAttributeResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileResizeResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileSeekResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileSetExtendedAttributeResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileSetFlagsResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileSyncResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileUpdateAttributesResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileWriteAtResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for FileWriteResponder

Set the the channel to be shutdown (see [FileControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for Guard

§

impl Drop for Handle

§

impl Drop for InspectSinkFetchEscrowResponder

Set the the channel to be shutdown (see [InspectSinkControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for InstanceIteratorNextResponder

Set the the channel to be shutdown (see [InstanceIteratorControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for IntrospectorGetMonikerResponder

Set the the channel to be shutdown (see [IntrospectorControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for LauncherCreateWithoutStartingResponder

Set the the channel to be shutdown (see [LauncherControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for LauncherLaunchResponder

Set the the channel to be shutdown (see [LauncherControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for LifecycleControllerCreateInstanceResponder

Set the the channel to be shutdown (see [LifecycleControllerControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for LifecycleControllerDestroyInstanceResponder

Set the the channel to be shutdown (see [LifecycleControllerControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for LifecycleControllerResolveInstanceResponder

Set the the channel to be shutdown (see [LifecycleControllerControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for LifecycleControllerStartInstanceResponder

Set the the channel to be shutdown (see [LifecycleControllerControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for LifecycleControllerStartInstanceWithArgsResponder

Set the the channel to be shutdown (see [LifecycleControllerControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for LifecycleControllerStopInstanceResponder

Set the the channel to be shutdown (see [LifecycleControllerControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for LifecycleControllerUnresolveInstanceResponder

Set the the channel to be shutdown (see [LifecycleControllerControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for LinkableLinkIntoResponder

Set the the channel to be shutdown (see [LinkableControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for LoaderCloneResponder

Set the the channel to be shutdown (see [LoaderControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for LoaderConfigResponder

Set the the channel to be shutdown (see [LoaderControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for LoaderLoadObjectResponder

Set the the channel to be shutdown (see [LoaderControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for LocalExecutor

§

impl Drop for LocalHandle

§

impl Drop for LogFlusherWaitUntilFlushedResponder

Set the the channel to be shutdown (see [LogFlusherControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for LogSettingsSetComponentInterestResponder

Set the the channel to be shutdown (see [LogSettingsControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for LogSettingsSetInterestResponder

Set the the channel to be shutdown (see [LogSettingsControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for ManifestBytesIteratorNextResponder

Set the the channel to be shutdown (see [ManifestBytesIteratorControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for NamespaceCreateResponder

Set the the channel to be shutdown (see [NamespaceControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for NodeCloseResponder

Set the the channel to be shutdown (see [NodeControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for NodeDeprecatedGetAttrResponder

Set the the channel to be shutdown (see [NodeControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for NodeDeprecatedGetFlagsResponder

Set the the channel to be shutdown (see [NodeControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for NodeDeprecatedSetAttrResponder

Set the the channel to be shutdown (see [NodeControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for NodeDeprecatedSetFlagsResponder

Set the the channel to be shutdown (see [NodeControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for NodeGetAttributesResponder

Set the the channel to be shutdown (see [NodeControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for NodeGetExtendedAttributeResponder

Set the the channel to be shutdown (see [NodeControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for NodeGetFlagsResponder

Set the the channel to be shutdown (see [NodeControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for NodeQueryFilesystemResponder

Set the the channel to be shutdown (see [NodeControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for NodeQueryResponder

Set the the channel to be shutdown (see [NodeControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for NodeRemoveExtendedAttributeResponder

Set the the channel to be shutdown (see [NodeControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for NodeSetExtendedAttributeResponder

Set the the channel to be shutdown (see [NodeControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for NodeSetFlagsResponder

Set the the channel to be shutdown (see [NodeControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for NodeSyncResponder

Set the the channel to be shutdown (see [NodeControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for NodeUpdateAttributesResponder

Set the the channel to be shutdown (see [NodeControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for QueryableQueryResponder

Set the the channel to be shutdown (see [QueryableControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for ReadableReadResponder

Set the the channel to be shutdown (see [ReadableControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for RealmCreateChildResponder

Set the the channel to be shutdown (see [RealmControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for RealmDestroyChildResponder

Set the the channel to be shutdown (see [RealmControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for RealmGetChildOutputDictionaryResponder

Set the the channel to be shutdown (see [RealmControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for RealmGetResolvedInfoResponder

Set the the channel to be shutdown (see [RealmControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for RealmListChildrenResponder

Set the the channel to be shutdown (see [RealmControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for RealmOpenControllerResponder

Set the the channel to be shutdown (see [RealmControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for RealmOpenExposedDirResponder

Set the the channel to be shutdown (see [RealmControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for RealmQueryConnectToStorageAdminResponder

Set the the channel to be shutdown (see [RealmQueryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for RealmQueryConstructNamespaceResponder

Set the the channel to be shutdown (see [RealmQueryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for RealmQueryGetAllInstancesResponder

Set the the channel to be shutdown (see [RealmQueryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for RealmQueryGetInstanceResponder

Set the the channel to be shutdown (see [RealmQueryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for RealmQueryGetResolvedDeclarationResponder

Set the the channel to be shutdown (see [RealmQueryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for RealmQueryGetStructuredConfigResponder

Set the the channel to be shutdown (see [RealmQueryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for RealmQueryOpenDirectoryResponder

Set the the channel to be shutdown (see [RealmQueryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for RealmQueryResolveDeclarationResponder

Set the the channel to be shutdown (see [RealmQueryControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for ResolverResolveResponder

Set the the channel to be shutdown (see [ResolverControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for ResolverResolveResponder

Set the the channel to be shutdown (see [ResolverControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for ResolverResolveWithContextResponder

Set the the channel to be shutdown (see [ResolverControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for RouteValidatorRouteResponder

Set the the channel to be shutdown (see [RouteValidatorControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for RouteValidatorValidateResponder

Set the the channel to be shutdown (see [RouteValidatorControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for SampleCommitResponder

Set the the channel to be shutdown (see [SampleControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for Scope

Abort the scope and all of its tasks. Prefer using the [Scope::abort] or [Scope::join] methods.

§

impl Drop for ScopeActiveGuard

§

impl Drop for SelectedOperation<'_>

§

impl Drop for SendExecutor

§

impl Drop for StorageAdminDeleteAllStorageContentsResponder

Set the the channel to be shutdown (see [StorageAdminControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for StorageAdminDeleteAllStorageContentsResponder

Set the the channel to be shutdown (see [StorageAdminControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for StorageAdminDeleteComponentStorageResponder

Set the the channel to be shutdown (see [StorageAdminControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for StorageAdminDeleteComponentStorageResponder

Set the the channel to be shutdown (see [StorageAdminControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for StorageAdminGetStatusResponder

Set the the channel to be shutdown (see [StorageAdminControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for StorageAdminGetStatusResponder

Set the the channel to be shutdown (see [StorageAdminControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for StorageAdminListStorageInRealmResponder

Set the the channel to be shutdown (see [StorageAdminControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for StorageAdminListStorageInRealmResponder

Set the the channel to be shutdown (see [StorageAdminControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for StorageAdminOpenComponentStorageByIdResponder

Set the the channel to be shutdown (see [StorageAdminControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for StorageAdminOpenComponentStorageByIdResponder

Set the the channel to be shutdown (see [StorageAdminControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for StorageAdminOpenStorageResponder

Set the the channel to be shutdown (see [StorageAdminControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for StorageAdminOpenStorageResponder

Set the the channel to be shutdown (see [StorageAdminControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for StorageIteratorNextResponder

Set the the channel to be shutdown (see [StorageIteratorControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for StorageIteratorNextResponder

Set the the channel to be shutdown (see [StorageIteratorControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for StringArrayProperty

§

impl Drop for SymlinkCloseResponder

Set the the channel to be shutdown (see [SymlinkControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for SymlinkDeprecatedGetAttrResponder

Set the the channel to be shutdown (see [SymlinkControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for SymlinkDeprecatedGetFlagsResponder

Set the the channel to be shutdown (see [SymlinkControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for SymlinkDeprecatedSetAttrResponder

Set the the channel to be shutdown (see [SymlinkControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for SymlinkDeprecatedSetFlagsResponder

Set the the channel to be shutdown (see [SymlinkControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for SymlinkDescribeResponder

Set the the channel to be shutdown (see [SymlinkControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for SymlinkGetAttributesResponder

Set the the channel to be shutdown (see [SymlinkControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for SymlinkGetExtendedAttributeResponder

Set the the channel to be shutdown (see [SymlinkControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for SymlinkGetFlagsResponder

Set the the channel to be shutdown (see [SymlinkControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for SymlinkLinkIntoResponder

Set the the channel to be shutdown (see [SymlinkControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for SymlinkQueryFilesystemResponder

Set the the channel to be shutdown (see [SymlinkControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for SymlinkQueryResponder

Set the the channel to be shutdown (see [SymlinkControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for SymlinkRemoveExtendedAttributeResponder

Set the the channel to be shutdown (see [SymlinkControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for SymlinkSetExtendedAttributeResponder

Set the the channel to be shutdown (see [SymlinkControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for SymlinkSetFlagsResponder

Set the the channel to be shutdown (see [SymlinkControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for SymlinkSyncResponder

Set the the channel to be shutdown (see [SymlinkControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for SymlinkUpdateAttributesResponder

Set the the channel to be shutdown (see [SymlinkControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for SystemControllerShutdownResponder

Set the the channel to be shutdown (see [SystemControllerControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for TaskProviderGetJobResponder

Set the the channel to be shutdown (see [TaskProviderControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for Timer

§

impl Drop for TransportError

§

impl Drop for TreeGetContentResponder

Set the the channel to be shutdown (see [TreeControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for TreeNameIteratorGetNextResponder

Set the the channel to be shutdown (see [TreeNameIteratorControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

§

impl Drop for WaitGroup

§

impl Drop for WritableWriteResponder

Set the the channel to be shutdown (see [WritableControlHandle::shutdown]) if the responder is dropped without sending a response, so that the client doesn’t hang. To prevent this behavior, call drop_without_shutdown.

Source§

impl<'a> Drop for PathSegmentsMut<'a>

Source§

impl<'a> Drop for UrlQuery<'a>

§

impl<'a> Drop for HandleDisposition<'a>

§

impl<'a, H> Drop for OnSignalsFuture<'a, H>
where H: AsHandleRef,

§

impl<'a, I> Drop for Chunk<'a, I>
where I: Iterator, <I as Iterator>::Item: 'a,

§

impl<'a, K, F, A> Drop for DrainFilter<'a, K, F, A>
where A: Allocator + Clone, F: FnMut(&K) -> bool,

§

impl<'a, K, I, F> Drop for Group<'a, K, I, F>
where I: Iterator, <I as Iterator>::Item: 'a,

§

impl<'a, K, V, F, A> Drop for DrainFilter<'a, K, V, F, A>
where F: FnMut(&K, &mut V) -> bool, A: Allocator + Clone,

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<'a, T> Drop for Drain<'a, T>
where T: 'a + Array,

Source§

impl<'a, T, A> Drop for DrainSorted<'a, T, A>
where T: Ord, A: Allocator,

Source§

impl<'a, T, const CAP: usize> Drop for arrayvec::arrayvec::Drain<'a, T, CAP>
where T: 'a,

§

impl<'e, E, W> Drop for EncoderWriter<'e, E, W>
where E: Engine, W: Write,

Source§

impl<'f> Drop for VaList<'f>

§

impl<'p, 's, T> Drop for SliceVecDrain<'p, 's, T>
where T: Default,

§

impl<'p, A, I> Drop for ArrayVecSplice<'p, A, I>
where A: Array, I: Iterator<Item = <A as Array>::Item>,

§

impl<'p, A, I> Drop for TinyVecSplice<'p, A, I>
where A: Array, I: Iterator<Item = <A as Array>::Item>,

§

impl<A> Drop for IntoIter<A>
where A: Array,

§

impl<A> Drop for SmallVec<A>
where A: Array,

Available on non-crate feature may_dangle only.
§

impl<D> Drop for EventReceiver<D>
where D: ResourceDialect,

§

impl<D> Drop for MessageResponse<D>
where D: ResourceDialect,

§

impl<Fut> Drop for FuturesUnordered<Fut>

§

impl<Fut> Drop for Shared<Fut>
where Fut: Future,

1.21.0 · Source§

impl<I, A> Drop for Splice<'_, I, A>
where I: Iterator, A: Allocator,

§

impl<K> Drop for OnInterrupt<K>
where K: InterruptKind,

1.7.0 · Source§

impl<K, V, A> Drop for BTreeMap<K, V, A>
where A: Allocator + Clone,

1.7.0 · Source§

impl<K, V, A> Drop for alloc::collections::btree::map::IntoIter<K, V, A>
where A: Allocator + Clone,

§

impl<R> Drop for ReadLine<'_, R>
where R: ?Sized,

§

impl<R> Drop for ScopeStream<R>

Source§

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

Source§

impl<T> Drop for std::sync::mpmc::Receiver<T>

Source§

impl<T> Drop for std::sync::mpmc::Sender<T>

Source§

impl<T> Drop for std::sync::nonpoison::mutex::MappedMutexGuard<'_, T>
where T: ?Sized,

Source§

impl<T> Drop for std::sync::nonpoison::mutex::MutexGuard<'_, T>
where T: ?Sized,

Source§

impl<T> Drop for std::sync::nonpoison::rwlock::MappedRwLockReadGuard<'_, T>
where T: ?Sized,

Source§

impl<T> Drop for std::sync::nonpoison::rwlock::MappedRwLockWriteGuard<'_, T>
where T: ?Sized,

Source§

impl<T> Drop for std::sync::nonpoison::rwlock::RwLockReadGuard<'_, T>
where T: ?Sized,

Source§

impl<T> Drop for std::sync::nonpoison::rwlock::RwLockWriteGuard<'_, T>
where T: ?Sized,

1.70.0 · Source§

impl<T> Drop for OnceLock<T>

Source§

impl<T> Drop for std::sync::poison::mutex::MappedMutexGuard<'_, T>
where T: ?Sized,

1.0.0 · Source§

impl<T> Drop for std::sync::poison::mutex::MutexGuard<'_, T>
where T: ?Sized,

Source§

impl<T> Drop for std::sync::poison::rwlock::MappedRwLockReadGuard<'_, T>
where T: ?Sized,

Source§

impl<T> Drop for std::sync::poison::rwlock::MappedRwLockWriteGuard<'_, T>
where T: ?Sized,

1.0.0 · Source§

impl<T> Drop for std::sync::poison::rwlock::RwLockReadGuard<'_, T>
where T: ?Sized,

1.0.0 · Source§

impl<T> Drop for std::sync::poison::rwlock::RwLockWriteGuard<'_, T>
where T: ?Sized,

Source§

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

§

impl<T> Drop for ArrayQueue<T>

§

impl<T> Drop for AtomicCell<T>

§

impl<T> Drop for EventedFd<T>

§

impl<T> Drop for Fragile<T>

§

impl<T> Drop for Injector<T>

§

impl<T> Drop for JoinHandle<T>

§

impl<T> Drop for LocalFutureObj<'_, T>

§

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

§

impl<T> Drop for MutexLockFuture<'_, T>
where T: ?Sized,

§

impl<T> Drop for OnceBox<T>

§

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

§

impl<T> Drop for OwnedMutexGuard<T>
where T: ?Sized,

§

impl<T> Drop for OwnedMutexLockFuture<T>
where T: ?Sized,

§

impl<T> Drop for RawReceiverRegistration<T>
where T: ?Sized,

§

impl<T> Drop for Receiver<T>

§

impl<T> Drop for Receiver<T>

§

impl<T> Drop for Receiver<T>

§

impl<T> Drop for ReceiverRegistration<T>
where T: Send + 'static,

§

impl<T> Drop for SegQueue<T>

§

impl<T> Drop for Sender<T>

§

impl<T> Drop for Sender<T>

§

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

§

impl<T> Drop for Sticky<T>

§

impl<T> Drop for Task<T>

§

impl<T> Drop for UnboundedReceiver<T>

§

impl<T> Drop for Unowned<'_, T>
where T: Into<NullableHandle>,

§

impl<T> Drop for WakerEntry<T>

1.0.0 · Source§

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

1.12.0 · Source§

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

1.0.0 · Source§

impl<T, A> Drop for LinkedList<T, A>
where A: Allocator,

1.6.0 · Source§

impl<T, A> Drop for alloc::collections::vec_deque::drain::Drain<'_, T, A>
where A: Allocator,

1.0.0 · Source§

impl<T, A> Drop for VecDeque<T, A>
where A: Allocator,

1.0.0 · Source§

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

Source§

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

1.4.0 · Source§

impl<T, A> Drop for alloc::rc::Weak<T, A>
where A: Allocator, T: ?Sized,

1.0.0 · Source§

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

Source§

impl<T, A> Drop for UniqueArc<T, A>
where A: Allocator, T: ?Sized,

1.4.0 · Source§

impl<T, A> Drop for alloc::sync::Weak<T, A>
where A: Allocator, T: ?Sized,

1.6.0 · Source§

impl<T, A> Drop for alloc::vec::drain::Drain<'_, T, A>
where A: Allocator,

1.0.0 · Source§

impl<T, A> Drop for alloc::vec::into_iter::IntoIter<T, A>
where A: Allocator,

1.0.0 · Source§

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

§

impl<T, A> Drop for RawDrain<'_, T, A>
where A: Allocator + Clone,

§

impl<T, A> Drop for RawIntoIter<T, A>
where A: Allocator + Clone,

Available on non-crate feature nightly only.
§

impl<T, A> Drop for RawTable<T, A>
where A: Allocator + Clone,

Available on non-crate feature nightly only.
Source§

impl<T, F> Drop for DropGuard<T, F>
where F: FnOnce(T),

1.80.0 · Source§

impl<T, F> Drop for LazyLock<T, F>

Source§

impl<T, F, A> Drop for alloc::collections::vec_deque::extract_if::ExtractIf<'_, T, F, A>
where A: Allocator,

1.87.0 · Source§

impl<T, F, A> Drop for alloc::vec::extract_if::ExtractIf<'_, T, F, A>
where A: Allocator,

Source§

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

§

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

Source§

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

Source§

impl<T, const CAP: usize> Drop for arrayvec::arrayvec::IntoIter<T, CAP>

1.40.0 · Source§

impl<T, const N: usize> Drop for starnix_uapi::arch32::__static_assertions::_core::array::IntoIter<T, N>

1.0.0 · Source§

impl<W> Drop for BufWriter<W>
where W: Write + ?Sized,