Skip to content
CryoCryo home
Stdlibcore

drop

import std::core::drop; — in the prelude · source

Types

Drop

type trait Drop {
    drop(mut &this) -> void;
}

Drop is the destructor: drop(mut &this) -> void, the last operation performed on a value. The compiler synthesises the call at scope exit - including the early exits ? and return take - and a manual .drop() remains available for early release. See Ownership, Copy, and Drop for when the call is inserted and what a move does to it.

Every primitive gets a trivial no-op impl so generic containers can write where K: Drop, V: Drop without locking out useful instantiations like HashMap<u32, V>; when the value carries no resource, the call lowers to no IR at all. The unit type () has one for the same reason - HashSet<T> is a HashMap<T, ()>.

The module is in the prelude because an implement trait Drop for X head has to resolve the trait name in every file that owns a resource, and the compiler reasons about Drop by identity rather than by spelling.

Methods

drop(mut &this) -> void;

Implementors

Every owning type in the library. The primitive impls are the no-ops described above; the 128-bit and pointer-width integers have no explicit impl and need none.

implement trait Drop for i8
implement trait Drop for i16
implement trait Drop for i32
implement trait Drop for i64
implement trait Drop for u8
implement trait Drop for u16
implement trait Drop for u32
implement trait Drop for u64
implement trait Drop for f32
implement trait Drop for f64
implement trait Drop for boolean
implement trait Drop for char
implement trait Drop for string
implement trait Drop for ()
implement<T, A> trait Drop for struct Arc<T, A> where A: Allocator
std::alloc::arc
implement<T, A> trait Drop for struct Weak<T, A> where A: Allocator
std::alloc::arc
implement trait Drop for struct Arena
std::alloc::arena_alloc
implement<T, A> trait Drop for struct Box<T, A> where A: Allocator
std::alloc::box
implement trait Drop for struct Pool
std::alloc::pool
implement<T, A> trait Drop for struct Rc<T, A> where A: Allocator
std::alloc::rc
implement<T, A> trait Drop for struct Weak<T, A> where A: Allocator
std::alloc::rc
implement<T, A> trait Drop for struct Array<T, A> where T: Drop, A: Allocator
std::collections::array
implement<K, V, A> trait Drop for struct HashMap<K, V, A> where A: Allocator
std::collections::hashmap
implement<T, A> trait Drop for struct HashSet<T, A> where A: Allocator
std::collections::hashset
implement<A, B> trait Drop for struct Pair<A, B>
std::collections::pair
implement<T, A> trait Drop for struct RawBuffer<T, A> where A: Allocator
std::collections::raw_buffer
implement<A> trait Drop for struct String<A> where A: Allocator
std::collections::string
implement trait Drop for VaArgs
std::core::varargs
implement trait Drop for struct BodyText
std::fmt::spec
implement trait Drop for struct DirEntry
std::fs::dir
implement trait Drop for struct ReadDir
std::fs::dir
implement trait Drop for struct File
std::fs::file
implement<A> trait Drop for struct PathBuf<A> where A: Allocator
std::fs::path
implement trait Drop for struct Task
std::future::executor
implement<O> trait Drop for struct JoinHandle<O>
std::future::executor
implement trait Drop for struct Executor
std::future::executor
implement trait Drop for struct Sleep
std::future::timer
implement trait Drop for struct Waker
std::future::waker
implement<W> trait Drop for struct BufWriter<W>
std::io::buf
implement<W> trait Drop for struct LineWriter<W>
std::io::buf
implement<R> trait Drop for struct BufReader<R>
std::io::buf
implement<S> trait Drop for struct BufStream<S>
std::io::buf
implement trait Drop for struct Cursor
std::io::cursor
implement trait Drop for struct StdinLock
std::io::stdio
implement trait Drop for struct StdoutLock
std::io::stdio
implement trait Drop for struct StderrLock
std::io::stdio
implement trait Drop for struct JsonError
std::json::error
implement trait Drop for struct JsonObject
std::json::value
implement trait Drop for enum JsonValue
std::json::value
implement trait Drop for struct ResolvedAddrs
std::net::dns
implement trait Drop for struct Resolve
std::net::dns
implement<S> trait Drop for struct Http2Connection<S>
std::net::http2::connection
implement trait Drop for struct Frame
std::net::http2::frame
implement trait Drop for struct HeaderField
std::net::http2::hpack
implement trait Drop for struct DynTable
std::net::http2::hpack
implement trait Drop for struct HpackDecoder
std::net::http2::hpack
implement trait Drop for struct HpackEncoder
std::net::http2::hpack
implement trait Drop for struct HuffTree
std::net::http2::huffman
implement trait Drop for struct Http2Server
std::net::http2::server
implement trait Drop for struct Headers
std::net::http::headers
implement trait Drop for struct Request
std::net::http::request
implement trait Drop for struct Response
std::net::http::response
implement trait Drop for struct Route
std::net::http::router
implement trait Drop for struct Router
std::net::http::router
implement trait Drop for struct HttpsClient
std::net::https
implement trait Drop for struct TcpStream
std::net::socket::tcp
implement trait Drop for struct TcpListener
std::net::socket::tcp
implement trait Drop for struct TcpRead
std::net::socket::tcp
implement trait Drop for struct TcpWrite
std::net::socket::tcp
implement trait Drop for struct TcpAccept
std::net::socket::tcp
implement trait Drop for struct TcpConnect
std::net::socket::tcp
implement trait Drop for struct UdpSocket
std::net::socket::udp
implement trait Drop for struct UdpSendTo
std::net::socket::udp
implement trait Drop for struct UdpSend
std::net::socket::udp
implement trait Drop for struct UdpRecvFrom
std::net::socket::udp
implement trait Drop for struct UdpRecv
std::net::socket::udp
implement trait Drop for struct TlsConnector
std::net::tls::context
implement trait Drop for struct TlsAcceptor
std::net::tls::context
implement trait Drop for struct TlsHandshake
std::net::tls::future
implement trait Drop for struct TlsRead
std::net::tls::future
implement trait Drop for struct TlsWrite
std::net::tls::future
implement trait Drop for struct TlsStream
std::net::tls::stream
implement<S> trait Drop for struct WebSocket<S>
std::net::ws::conn
implement trait Drop for struct Frame
std::net::ws::frame
implement trait Drop for struct ChildWait
std::process::child
implement trait Drop for struct PipeDrain
std::process::child
implement trait Drop for struct ChildStdin
std::process::child
implement trait Drop for struct ChildStdout
std::process::child
implement trait Drop for struct ChildStderr
std::process::child
implement trait Drop for struct Child
std::process::child
implement trait Drop for struct ArgvBuf
std::process::command
implement trait Drop for struct EnvEntry
std::process::command
implement trait Drop for struct Command
std::process::command
implement trait Drop for struct Output
std::process::command
implement trait Drop for struct PipePair
std::process::command
implement trait Drop for struct WinStdio
std::process::command
implement trait Drop for struct WeightedIndex
std::random::distribution
implement<T> trait Drop for struct Atomic<T>
std::sync::atomic
implement trait Drop for struct Barrier
std::sync::barrier
implement trait Drop for struct CondVar
std::sync::condvar
implement<T> trait Drop for struct Sender<T>
std::sync::mpsc
implement<T> trait Drop for struct Receiver<T>
std::sync::mpsc
implement<T, A> trait Drop for struct MutexGuard<T, A>
std::sync::mutex
implement<T, A> trait Drop for struct Mutex<T, A> where A: Allocator
std::sync::mutex
implement trait Drop for struct Once
std::sync::once
implement<T, A> trait Drop for struct RwLockReadGuard<T, A>
std::sync::rwlock
implement<T, A> trait Drop for struct RwLockWriteGuard<T, A>
std::sync::rwlock
implement<T, A> trait Drop for struct RwLock<T, A> where A: Allocator
std::sync::rwlock
implement trait Drop for enum TestError
std::test::error
implement trait Drop for struct RunOptions
std::test::runner
implement trait Drop for struct TestRun
std::test::runner
implement trait Drop for struct ReporterState
std::test::runner
implement trait Drop for struct WorkerResult
std::test::runner
implement trait Drop for struct TestRunner
std::test::runner
implement<T> trait Drop for struct JoinHandle<T>
std::thread
implement trait Drop for struct Scope
std::thread
implement<T> trait Drop for struct ThreadLocal<T>
std::thread::local