# Module std::mem

1.0.0 · source ·
Expand description

Basic functions for dealing with memory.

This module contains functions for querying the size and alignment of types, initializing and manipulating memory.

## Macros

- offset_of Experimental
  Expands to the offset in bytes of a field from the beginning of the given type.

## Structs

- Assume Experimental
  What transmutation safety conditions shall the compiler assume that you are checking?
- Discriminant
  Opaque type representing the discriminant of an enum.
- ManuallyDrop
  A wrapper to inhibit compiler from automatically calling `T`’s destructor. This wrapper is 0-cost.

## Traits

- BikeshedIntrinsicFrom Experimental
  Are values of a type transmutable into values of another type?

## Functions

- align_of_val_raw⚠Experimental
  Returns the ABI-required minimum alignment of the type of the value that `val` points to in bytes.
- copy Experimental
  Bitwise-copies a value.
- forget_unsized Experimental
  Like `forget`, but also accepts unsized values.
- size_of_val_raw⚠Experimental
  Returns the size of the pointed-to value in bytes.
- variant_count Experimental
  Returns the number of variants in the enum type `T`.
- align_of
  Returns the ABI-required minimum alignment of a type in bytes.
- align_of_val
  Returns the ABI-required minimum alignment of the type of the value that `val` points to in bytes.
- discriminant
  Returns a value uniquely identifying the enum variant in `v`.
- drop
  Disposes of a value.
- forget
  Takes ownership and “forgets” about the value without running its destructor.
- min_align_of Deprecated
  Returns the ABI-required minimum alignment of a type in bytes.
- min_align_of_val Deprecated
  Returns the ABI-required minimum alignment of the type of the value that `val` points to in bytes.
- needs_drop
  Returns `true` if dropping values of type `T` matters.
- replace
  Moves `src` into the referenced `dest`, returning the previous `dest` value.
- size_of
  Returns the size of a type in bytes.
- size_of_val
  Returns the size of the pointed-to value in bytes.
- swap
  Swaps the values at two mutable locations, without deinitializing either one.
- take
  Replaces `dest` with the default value of `T`, returning the previous `dest` value.
- transmute⚠
  Reinterprets the bits of a value of one type as another type.
- transmute_copy⚠
  Interprets `src` as having type `&Dst`, and then reads `src` without moving the contained value.
- uninitialized⚠Deprecated
  Bypasses Rust’s normal memory-initialization checks by pretending to produce a value of type `T`, while doing nothing at all.
- zeroed⚠
  Returns the value of type `T` represented by the all-zero byte-pattern.

## Unions

- MaybeUninit
  A wrapper type to construct uninitialized instances of `T`.