pub use decoder::provide_extern;
pub use encoder::encode_metadata;
pub use encoder::EncodedMetadata;



Define LazyTables and TableBuilders at the same time.


Serialized metadata for a crate. When compiling a proc-macro crate, we encode many of the Lazy<[T]> fields as Lazy::empty(). This serves two purposes:

A value of type T referred to by its absolute position in the metadata, and which can be decoded lazily.

Contains a constant which has been rendered to a String. Used by rustdoc.


Describes whether the container of an associated item is a trait or an impl and whether, in a trait, it has a default, or an in impl, whether it’s marked “default”.

Encoding / decoding state for Lazy.


Metadata header which includes METADATA_VERSION.

Metadata encoding version. N.B., increment this if you change the format of metadata such that the rustc version can’t be found to compare with rustc_version().


Additional metadata for a Lazy<T> where T may not be Sized, e.g. for Lazy<[T]>, this is the length (count of T values).


Type Definitions