Crate rustdoc_json_types

Source
Expand description

Rustdoc’s JSON output interface

These types are the public API exposed through the --output-format json flag. The Crate struct is the root of the JSON blob and all other items are contained within.

We expose a rustc-hash feature that is disabled by default. This feature switches the std::collections::HashMap for [rustc_hash::FxHashMap] to improve the performance of said HashMap in specific situations.

cargo-semver-checks for example, saw a -3% improvement when benchmarking using the aws_sdk_ec2 JSON output (~500MB of JSON). As always, we recommend measuring the impact before turning this feature on, as FxHashMap only concerns itself with hash speed, and may increase the number of collisions.

Structs§

  • Describes a bound applied to an associated type/constant.
  • A constant.
  • The root of the emitted JSON blob.
  • Information about the deprecation of an Item.
  • The value that distinguishes a variant in an Enum from other variants.
  • Dynamic trait object type (dyn Trait).
  • An enum.
  • Metadata of a crate, either the same crate on which rustdoc was invoked, or its dependency.
  • A function declaration (including methods and other associated functions).
  • A set of fundamental properties of a function.
  • A type that is a function pointer.
  • The signature of a function.
  • One generic parameter accepted by an item.
  • Generic parameters accepted by an item and where clauses imposed on it and the parameters.
  • An opaque identifier for an item.
  • An impl block.
  • Anything that can hold documentation - modules, structs, enums, functions, traits, etc.
  • Information about an external (not defined in the local crate) Item.
  • A module declaration, e.g. mod foo; or mod foo {}.
  • A type that has a simple path to it. This is the kind of type of structs, unions, enums, etc.
  • A trait and potential HRTBs
  • A primitive type declaration. Declarations of this kind can only come from the core library.
  • A procedural macro.
  • A range of source code.
  • A static declaration.
  • A struct.
  • A trait declaration.
  • A trait alias declaration, e.g. trait Int = Add + Sub + Mul + Div;
  • A type alias declaration, e.g. type Pig = std::borrow::Cow<'static, str>;
  • A union.
  • A use statement.
  • A variant of an enum.

Enums§

Constants§

Type Aliases§