Module builtin

Source
Expand description

Definitions of built-in macros.

Most of the macro properties (stability, visibility, etc.) are taken from the source code here, with exception of expansion functions transforming macro inputs into outputs, those functions are provided by the compiler.

Macros§

derefExperimental
Unstable placeholder for deref patterns.
type_ascribeExperimental
Unstable placeholder for type ascription.

Attribute Macros§

derive
Attribute macro used to apply derive macros.
global_allocator
Attribute macro applied to a static to register it as a global allocator.
test
Attribute macro applied to a function to turn it into a unit test.
alloc_error_handlerExperimental
Attribute macro applied to a function to register it as a handler for allocation failure.
autodiffExperimental
Automatic Differentiation macro which allows generating a new function to compute the derivative of a given function. It may only be applied to a function. The expected usage syntax is #[autodiff(NAME, MODE, INPUT_ACTIVITIES, OUTPUT_ACTIVITY)] where: NAME is a string that represents a valid function name. MODE is any of Forward, Reverse, ForwardFirst, ReverseFirst. INPUT_ACTIVITIES consists of one valid activity for each input parameter. OUTPUT_ACTIVITY must not be set if we implicitly return nothing (or explicitly return -> ()). Otherwise it must be set to one of the allowed activities.
benchExperimental
Attribute macro applied to a function to turn it into a benchmark test.
cfg_accessibleExperimental
Keeps the item it’s applied to if the passed path is accessible, and removes it otherwise.
cfg_evalExperimental
Expands all #[cfg] and #[cfg_attr] attributes in the code fragment it’s applied to.
contracts_ensuresExperimental
Attribute macro applied to a function to give it a post-condition.
contracts_requiresExperimental
Attribute macro applied to a function to give it a precondition.
define_opaqueExperimental
Provide a list of type aliases and other opaque-type-containing type definitions to an item with a body. This list will be used in that body to define opaque types’ hidden types. Can only be applied to things that have bodies.
derive_constExperimental
Attribute macro used to apply derive macros for implementing traits in a const context.
test_caseExperimental
An implementation detail of the #[test] and #[bench] macros.