rustdoc_json_types - Rust (original) (raw)

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 Cratestruct 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 thestd::collections::HashMap for [rustc_hash::FxHashMap] to improve the performance of saidHashMap in specific situations.

cargo-semver-checks for example, saw a -3% improvement when benchmarking using theaws_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.

AssocItemConstraint

Describes a bound applied to an associated type/constant.

AttributeRepr

The contents of a #[repr(...)] attribute.

Constant

A constant.

Crate

The root of the emitted JSON blob.

Deprecation

Information about the deprecation of an Item.

Discriminant

The value that distinguishes a variant in an Enum from other variants.

DynTrait

Dynamic trait object type (dyn Trait).

Enum

An enum.

ExternalCrate

Metadata of a crate, either the same crate on which rustdoc was invoked, or its dependency.

Function

A function declaration (including methods and other associated functions).

FunctionHeader

A set of fundamental properties of a function.

FunctionPointer

A type that is a function pointer.

FunctionSignature

The signature of a function.

GenericParamDef

One generic parameter accepted by an item.

Generics

Generic parameters accepted by an item and where clauses imposed on it and the parameters.

Id

An opaque identifier for an item.

Impl

An impl block.

Item

Anything that can hold documentation - modules, structs, enums, functions, traits, etc.

ItemSummary

Information about an external (not defined in the local crate) Item.

Module

A module declaration, e.g. mod foo; or mod foo {}.

Path

A type that has a simple path to it. This is the kind of type of structs, unions, enums, etc.

PolyTrait

A trait and potential HRTBs

Primitive

A primitive type declaration. Declarations of this kind can only come from the core library.

ProcMacro

A procedural macro.

Span

A range of source code.

Static

A static declaration.

Struct

A struct.

Target

Information about a target

TargetFeature

Information about a target feature.

Trait

A trait declaration.

TraitAlias

A trait alias declaration, e.g. trait Int = Add + Sub + Mul + Div;

TypeAlias

A type alias declaration, e.g. type Pig = std::borrow::Cow<'static, str>;

Union

A union.

Use

A use statement.

Variant

A variant of an enum.

Abi

The ABI (Application Binary Interface) used by a function.

AssocItemConstraintKind

The way in which an associate type/constant is bound.

Attribute

An attribute, e.g. #[repr(C)]

GenericArg

One argument in a list of generic arguments to a path segment.

GenericArgs

A set of generic arguments provided to a path segment, e.g.

GenericBound

Either a trait bound or a lifetime bound.

GenericParamDefKind

The kind of a GenericParamDef.

ItemEnum

Specific fields of an item.

ItemKind

The fundamental kind of an item. Unlike ItemEnum, this does not carry any additional info.

MacroKind

The way a ProcMacro is declared to be used.

PreciseCapturingArg

One precise capturing argument. See the rust reference.

ReprKind

The kind of #[repr].

StructKind

The kind of a Struct and the data specific to it, i.e. fields.

Term

Either a type or a constant, usually stored as the right-hand side of an equation in places likeAssocItemConstraint

TraitBoundModifier

A set of modifiers applied to a trait.

Type

A type.

VariantKind

The kind of an Enum Variant and the data specific to it, i.e. fields.

Visibility

Visibility of an Item.

WherePredicate

One where clause.

FORMAT_VERSION

The version of JSON output that this crate represents.

FxHashMap