]>
git.proxmox.com Git - rustc.git/blob - src/librustdoc/doctree.rs
1 //! This module is used to store stuff from Rust's AST in a more convenient
2 //! manner (and with prettier names) before cleaning.
3 crate use self::StructType
::*;
6 use rustc_span
::{self, Span, Symbol}
;
10 crate struct Module
<'hir
> {
11 crate name
: Option
<Symbol
>,
12 crate where_outer
: Span
,
13 crate where_inner
: Span
,
14 crate imports
: Vec
<Import
<'hir
>>,
15 crate mods
: Vec
<Module
<'hir
>>,
18 crate items
: Vec
<(&'hir hir
::Item
<'hir
>, Option
<Symbol
>)>,
19 crate foreigns
: Vec
<(&'hir hir
::ForeignItem
<'hir
>, Option
<Symbol
>)>,
20 crate macros
: Vec
<(&'hir hir
::MacroDef
<'hir
>, Option
<Symbol
>)>,
25 crate fn new(name
: Option
<Symbol
>) -> Module
<'hir
> {
28 id
: hir
::CRATE_HIR_ID
,
29 where_outer
: rustc_span
::DUMMY_SP
,
30 where_inner
: rustc_span
::DUMMY_SP
,
41 #[derive(Debug, Clone, Copy)]
42 crate enum StructType
{
51 crate struct Variant
<'hir
> {
54 crate def
: &'hir hir
::VariantData
<'hir
>,
58 crate struct Import
<'hir
> {
61 crate vis
: &'hir hir
::Visibility
<'hir
>,
62 crate attrs
: &'hir
[ast
::Attribute
],
63 crate path
: &'hir hir
::Path
<'hir
>,
68 crate fn struct_type_from_def(vdata
: &hir
::VariantData
<'_
>) -> StructType
{
70 hir
::VariantData
::Struct(..) => Plain
,
71 hir
::VariantData
::Tuple(..) => Tuple
,
72 hir
::VariantData
::Unit(..) => Unit
,