# Module core::heap [−] [src]

🔬 This is a nightly-only experimental API. (`allocator_api` #32838)

the precise API and guarantees it provides may be tweaked slightly, especially to possibly take into account the types being stored to make room for a future tracing garbage collector

## Structs

CannotReallocInPlace | [ Experimental ] The `CannotReallocInPlace` error is used when `grow_in_place` or `shrink_in_place` were unable to reuse the given memory block for a requested layout.
Excess | [ Experimental ] Represents the combination of a starting address and a total capacity of the returned block.
Layout | [ Experimental ] Layout of a block of memory.

## Enums

AllocErr | [ Experimental ] The `AllocErr` error specifies whether an allocation failure is specifically due to resource exhaustion or if it is due to something wrong when combining the given input arguments with this allocator.
CollectionAllocErr | [ Experimental ] Augments `AllocErr` with a CapacityOverflow variant.

## Traits

Alloc | [ Experimental ] An implementation of `Alloc` can allocate, reallocate, and deallocate arbitrary blocks of data described via `Layout`.

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)