pub struct Item {
pub id: Id,
pub crate_id: u32,
pub name: Option<String>,
pub span: Option<Span>,
pub visibility: Visibility,
pub docs: Option<String>,
pub links: HashMap<String, Id>,
pub attrs: Vec<String>,
pub deprecation: Option<Deprecation>,
pub inner: ItemEnum,
}
Expand description
Anything that can hold documentation - modules, structs, enums, functions, traits, etc.
The Item
data type holds fields that can apply to any of these,
and leaves kind-specific details (like function args or enum variants) to the inner
field.
Fields§
§id: Id
The unique identifier of this item. Can be used to find this item in various mappings.
crate_id: u32
This can be used as a key to the external_crates
map of Crate
to see which crate
this item came from.
name: Option<String>
Some items such as impls don’t have names.
span: Option<Span>
The source location of this item (absent if it came from a macro expansion or inline assembly).
visibility: Visibility
By default all documented items are public, but you can tell rustdoc to output private items so this field is needed to differentiate.
docs: Option<String>
The full markdown docstring of this item. Absent if there is no documentation at all,
Some(“”) if there is some documentation but it is empty (EG #[doc = ""]
).
links: HashMap<String, Id>
This mapping resolves intra-doc links from the docstring to their IDs
attrs: Vec<String>
Stringified versions of parsed attributes on this item.
Essentially debug printed (e.g. #[inline]
becomes something similar to #[attr="Inline(Hint)"]
).
Equivalent to the hir pretty-printing of attributes.
deprecation: Option<Deprecation>
Information about the item’s deprecation, if present.
inner: ItemEnum
The type-specific fields describing this item.