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::dropfor that value, if this specialDroptrait 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
Thas no drop glue, then trivially nothing is required to be live. This is the case if neitherTnor any of its (recursive) fields have a destructor (impl Drop).PhantomData, arrays of length 0 andManuallyDropare considered to never have a destructor, no matter their field type. - If
Thas drop glue, then, for all typesUthat are owned by any field ofT, recursively add the types and lifetimes that need to be live whenUgets dropped. The set of owned types is determined by recursively traversingT:- 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 anenum, consider all fields of all variants.)
- Recursively descend through
- Furthermore, if
TimplementsDrop, then all generic (lifetime and type) parameters ofTmust 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 · Sourcefn drop(&mut self)
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§
impl Drop for LocalWaker
impl Drop for Waker
impl Drop for CString
impl Drop for alloc::string::Drain<'_>
impl Drop for OwnedFd
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.
impl<'a> Drop for PathSegmentsMut<'a>
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>
impl<'a, K, F, A> Drop for DrainFilter<'a, K, F, A>
impl<'a, K, I, F> Drop for Group<'a, K, I, F>
impl<'a, K, V, F, A> Drop for DrainFilter<'a, K, V, F, A>
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,
impl<'a, T, A> Drop for DrainSorted<'a, T, A>
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,
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,
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<I, A> Drop for Splice<'_, I, A>
impl<K> Drop for OnInterrupt<K>where
K: InterruptKind,
impl<K, V, A> Drop for BTreeMap<K, V, A>
impl<K, V, A> Drop for alloc::collections::btree::map::IntoIter<K, V, A>
impl<R> Drop for ReadLine<'_, R>where
R: ?Sized,
impl<R> Drop for ScopeStream<R>
impl<T> Drop for ThinBox<T>where
T: ?Sized,
impl<T> Drop for std::sync::mpmc::Receiver<T>
impl<T> Drop for std::sync::mpmc::Sender<T>
impl<T> Drop for std::sync::nonpoison::mutex::MappedMutexGuard<'_, T>where
T: ?Sized,
impl<T> Drop for std::sync::nonpoison::mutex::MutexGuard<'_, T>where
T: ?Sized,
impl<T> Drop for std::sync::nonpoison::rwlock::MappedRwLockReadGuard<'_, T>where
T: ?Sized,
impl<T> Drop for std::sync::nonpoison::rwlock::MappedRwLockWriteGuard<'_, T>where
T: ?Sized,
impl<T> Drop for std::sync::nonpoison::rwlock::RwLockReadGuard<'_, T>where
T: ?Sized,
impl<T> Drop for std::sync::nonpoison::rwlock::RwLockWriteGuard<'_, T>where
T: ?Sized,
impl<T> Drop for OnceLock<T>
impl<T> Drop for std::sync::poison::mutex::MappedMutexGuard<'_, T>where
T: ?Sized,
impl<T> Drop for std::sync::poison::mutex::MutexGuard<'_, T>where
T: ?Sized,
impl<T> Drop for std::sync::poison::rwlock::MappedRwLockReadGuard<'_, T>where
T: ?Sized,
impl<T> Drop for std::sync::poison::rwlock::MappedRwLockWriteGuard<'_, T>where
T: ?Sized,
impl<T> Drop for std::sync::poison::rwlock::RwLockReadGuard<'_, T>where
T: ?Sized,
impl<T> Drop for std::sync::poison::rwlock::RwLockWriteGuard<'_, T>where
T: ?Sized,
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>
impl<T, A> Drop for Box<T, A>
impl<T, A> Drop for PeekMut<'_, T, A>
impl<T, A> Drop for LinkedList<T, A>where
A: Allocator,
impl<T, A> Drop for alloc::collections::vec_deque::drain::Drain<'_, T, A>where
A: Allocator,
impl<T, A> Drop for VecDeque<T, A>where
A: Allocator,
impl<T, A> Drop for Rc<T, A>
impl<T, A> Drop for UniqueRc<T, A>
impl<T, A> Drop for alloc::rc::Weak<T, A>
impl<T, A> Drop for Arc<T, A>
impl<T, A> Drop for UniqueArc<T, A>
impl<T, A> Drop for alloc::sync::Weak<T, A>
impl<T, A> Drop for alloc::vec::drain::Drain<'_, T, A>where
A: Allocator,
impl<T, A> Drop for alloc::vec::into_iter::IntoIter<T, A>where
A: Allocator,
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,
nightly only.impl<T, A> Drop for RawTable<T, A>where
A: Allocator + Clone,
nightly only.