Skip to content

Instantly share code, notes, and snippets.

@brson
Created January 20, 2012 02:56
Show Gist options
  • Save brson/1644684 to your computer and use it in GitHub Desktop.
Save brson/1644684 to your computer and use it in GitHub Desktop.

Crate rustdoc

Rustdoc - The Rust documentation generator

Function run_passes

fn run_passes(srv: astsrv::srv, doc: doc::cratedoc, passes: [pass]) ->
   doc::cratedoc

Run a series of passes over the document

Arguments:

  • srv: astsrv::srv - The AST service to provide to the passes
  • doc: doc::cratedoc - The document to transform
  • passes: [pass] - The list of passes used to transform the document

Returns doc::cratedoc

The transformed document that results from folding the original through each pass

Function run

fn run(source_file: str)

Runs rustdoc over the given file

Arguments:

  • source_file: str

Module parse

AST-parsing helpers

Function new_parse_sess

fn new_parse_sess() -> parser::parse_sess

Returns parser::parse_sess

Function from_file

fn from_file(file: str) -> @ast::crate

Arguments:

  • file: str

Returns @ast::crate

Function from_str

fn from_str(source: str) -> @ast::crate

Arguments:

  • source: str

Returns @ast::crate

Module extract

Converts the Rust AST to the rustdoc document model

Function from_srv

fn from_srv(srv: astsrv::srv, default_name: str) -> doc::cratedoc

Use the AST service to create a document tree

Arguments:

  • srv: astsrv::srv
  • default_name: str

Returns doc::cratedoc

Function extract

fn extract(crate: @ast::crate, default_name: str) -> doc::cratedoc

Arguments:

  • crate: @ast::crate
  • default_name: str

Returns doc::cratedoc

Function top_moddoc_from_crate

fn top_moddoc_from_crate(crate: @ast::crate, default_name: str) -> doc::moddoc

Arguments:

  • crate: @ast::crate
  • default_name: str

Returns doc::moddoc

Function moddoc_from_mod

fn moddoc_from_mod(module: ast::_mod, name: ast::ident, id: ast::node_id) ->
   doc::moddoc

Arguments:

  • module: ast::_mod
  • name: ast::ident
  • id: ast::node_id

Returns doc::moddoc

Function fndoc_from_fn

fn fndoc_from_fn(decl: ast::fn_decl, name: ast::ident, id: ast::node_id) ->
   doc::fndoc

Arguments:

  • decl: ast::fn_decl
  • name: ast::ident
  • id: ast::node_id

Returns doc::fndoc

Function argdocs_from_args

fn argdocs_from_args(args: [ast::arg]) -> [doc::argdoc]

Arguments:

  • args: [ast::arg]

Returns [doc::argdoc]

Function argdoc_from_arg

fn argdoc_from_arg(arg: ast::arg) -> doc::argdoc

Arguments:

  • arg: ast::arg

Returns doc::argdoc

Module attr_parser

Attribute parsing

The attribute parser provides methods for pulling documentation out of an AST's attributes.

Function doc_meta

fn doc_meta(attrs: [ast::attribute]) -> option<@ast::meta_item>

Given a vec of attributes, extract the meta_items contained in the doc attribute

Arguments:

  • attrs: [ast::attribute]

Returns option<@ast::meta_item>

Function parse_crate

fn parse_crate(attrs: [ast::attribute]) -> crate_attrs

Arguments:

  • attrs: [ast::attribute]

Returns crate_attrs

Function parse_mod

fn parse_mod(attrs: [ast::attribute]) -> mod_attrs

Arguments:

  • attrs: [ast::attribute]

Returns mod_attrs

Function parse_mod_long_doc

fn parse_mod_long_doc(_items: [@ast::meta_item], brief: option<str>,
                      desc: option<str>) -> mod_attrs

Arguments:

  • _items: [@ast::meta_item]
  • brief: option<str>
  • desc: option<str>

Returns mod_attrs

Function parse_short_doc_or

fn parse_short_doc_or(attrs: [ast::attribute],
                      handle_short: fn&(short_desc: option<str>) -> T,
                      parse_long:
                          fn&
                              (doc_items: [@ast::meta_item], brief:
                               option<str>, desc: option<str>) -> T) -> T

Arguments:

  • attrs: [ast::attribute]
  • handle_short: fn&(short_desc: option<str>) -> T
  • parse_long: fn&(doc_items: [@ast::meta_item], brief: option<str>, desc: option<str>) -> T

Returns T

Function parse_fn

fn parse_fn(attrs: [ast::attribute]) -> fn_attrs

Arguments:

  • attrs: [ast::attribute]

Returns fn_attrs

Function parse_fn_long_doc

fn parse_fn_long_doc(items: [@ast::meta_item], brief: option<str>,
                     desc: option<str>) -> fn_attrs

Arguments:

  • items: [@ast::meta_item]
  • brief: option<str>
  • desc: option<str>

Returns fn_attrs

Module doc

The document model

Module gen

Generate markdown from a document tree

Function mk_pass

fn mk_pass(writer: fn~() -> io::writer) -> pass

Arguments:

  • writer: fn~() -> io::writer

Returns pass

Module fold

Function mk_fold

fn mk_fold(ctxt: T, fold_crate: fold_crate<T>, fold_mod: fold_mod<T>,
           fold_fn: fold_fn<T>, fold_modlist: fold_modlist<T>,
           fold_fnlist: fold_fnlist<T>) -> fold<T>

Arguments:

  • ctxt: T
  • fold_crate: fold_crate<T>
  • fold_mod: fold_mod<T>
  • fold_fn: fold_fn<T>
  • fold_modlist: fold_modlist<T>
  • fold_fnlist: fold_fnlist<T>

Returns fold<T>

Function default_seq_fold

fn default_seq_fold(ctxt: T) -> fold<T>

Arguments:

  • ctxt: T

Returns fold<T>

Function default_seq_fold_crate

fn default_seq_fold_crate(fold: fold<T>, doc: doc::cratedoc) -> doc::cratedoc

Arguments:

  • fold: fold<T>
  • doc: doc::cratedoc

Returns doc::cratedoc

Function default_seq_fold_mod

fn default_seq_fold_mod(fold: fold<T>, doc: doc::moddoc) -> doc::moddoc

Arguments:

  • fold: fold<T>
  • doc: doc::moddoc

Returns doc::moddoc

Function default_seq_fold_fn

fn default_seq_fold_fn(_fold: fold<T>, doc: doc::fndoc) -> doc::fndoc

Arguments:

  • _fold: fold<T>
  • doc: doc::fndoc

Returns doc::fndoc

Function default_seq_fold_modlist

fn default_seq_fold_modlist(fold: fold<T>, list: doc::modlist) -> doc::modlist

Arguments:

  • fold: fold<T>
  • list: doc::modlist

Returns doc::modlist

Function default_seq_fold_fnlist

fn default_seq_fold_fnlist(fold: fold<T>, list: doc::fnlist) -> doc::fnlist

Arguments:

  • fold: fold<T>
  • list: doc::fnlist

Returns doc::fnlist

Module path_pass

Records the full path to items

Function mk_pass

fn mk_pass() -> pass

Returns pass

Function run

fn run(srv: astsrv::srv, doc: doc::cratedoc) -> doc::cratedoc

Arguments:

  • srv: astsrv::srv
  • doc: doc::cratedoc

Returns doc::cratedoc

Function fold_mod

fn fold_mod(fold: fold::fold<ctxt>, doc: doc::moddoc) -> doc::moddoc

Arguments:

  • fold: fold::fold<ctxt>
  • doc: doc::moddoc

Returns doc::moddoc

Module attr_pass

The attribute parsing pass

Traverses the document tree, pulling relevant documention out of the corresponding AST nodes. The information gathered here is the basis of the natural-language documentation for a crate.

Function mk_pass

fn mk_pass() -> pass

Returns pass

Function run

fn run(srv: astsrv::srv, doc: doc::cratedoc) -> doc::cratedoc

Arguments:

  • srv: astsrv::srv
  • doc: doc::cratedoc

Returns doc::cratedoc

Function fold_crate

fn fold_crate(fold: fold::fold<astsrv::srv>, doc: doc::cratedoc) ->
   doc::cratedoc

Arguments:

  • fold: fold::fold<astsrv::srv>
  • doc: doc::cratedoc

Returns doc::cratedoc

Function fold_mod

fn fold_mod(fold: fold::fold<astsrv::srv>, doc: doc::moddoc) -> doc::moddoc

Arguments:

  • fold: fold::fold<astsrv::srv>
  • doc: doc::moddoc

Returns doc::moddoc

Function fold_fn

fn fold_fn(fold: fold::fold<astsrv::srv>, doc: doc::fndoc) -> doc::fndoc

Arguments:

  • fold: fold::fold<astsrv::srv>
  • doc: doc::fndoc

Returns doc::fndoc

Module tystr_pass

Pulls type information out of the AST and attaches it to the document

Function mk_pass

fn mk_pass() -> pass

Returns pass

Function run

fn run(srv: astsrv::srv, doc: doc::cratedoc) -> doc::cratedoc

Arguments:

  • srv: astsrv::srv
  • doc: doc::cratedoc

Returns doc::cratedoc

Function fold_fn

fn fold_fn(fold: fold::fold<astsrv::srv>, doc: doc::fndoc) -> doc::fndoc

Arguments:

  • fold: fold::fold<astsrv::srv>
  • doc: doc::fndoc

Returns doc::fndoc

Function get_fn_sig

fn get_fn_sig(srv: astsrv::srv, fn_id: doc::ast_id) -> option<str>

Arguments:

  • srv: astsrv::srv
  • fn_id: doc::ast_id

Returns option<str>

Function merge_ret_ty

fn merge_ret_ty(srv: astsrv::srv, fn_id: doc::ast_id,
                doc: option<doc::retdoc>) -> option<doc::retdoc>

Arguments:

  • srv: astsrv::srv
  • fn_id: doc::ast_id
  • doc: option<doc::retdoc>

Returns option<doc::retdoc>

Function get_ret_ty

fn get_ret_ty(srv: astsrv::srv, fn_id: doc::ast_id) -> option<str>

Arguments:

  • srv: astsrv::srv
  • fn_id: doc::ast_id

Returns option<str>

Function merge_arg_tys

fn merge_arg_tys(srv: astsrv::srv, fn_id: doc::ast_id, args: [doc::argdoc]) ->
   [doc::argdoc]

Arguments:

  • srv: astsrv::srv
  • fn_id: doc::ast_id
  • args: [doc::argdoc]

Returns [doc::argdoc]

Function get_arg_tys

fn get_arg_tys(srv: astsrv::srv, fn_id: doc::ast_id) -> [(str, str)]

Arguments:

  • srv: astsrv::srv
  • fn_id: doc::ast_id

Returns [(str, str)]

Module prune_undoc_pass

Prunes branches of the document tree that contain no documentation

Function mk_pass

fn mk_pass() -> pass

Returns pass

Function run

fn run(_srv: astsrv::srv, doc: doc::cratedoc) -> doc::cratedoc

Arguments:

  • _srv: astsrv::srv
  • doc: doc::cratedoc

Returns doc::cratedoc

Function fold_fn

fn fold_fn(fold: fold::fold<ctxt>, doc: doc::fndoc) -> doc::fndoc

Arguments:

  • fold: fold::fold<ctxt>
  • doc: doc::fndoc

Returns doc::fndoc

Function fold_fnlist

fn fold_fnlist(fold: fold::fold<ctxt>, list: doc::fnlist) -> doc::fnlist

Arguments:

  • fold: fold::fold<ctxt>
  • list: doc::fnlist

Returns doc::fnlist

Module astsrv

Provides all access to AST-related, non-sendable info

Rustdoc is intended to be parallel, and the rustc AST is filled with shared boxes. The AST service attempts to provide a single place to query AST-related information, shielding the rest of Rustdoc from its non-sendableness.

Function mk_srv_from_str

fn mk_srv_from_str(source: str) -> srv

Arguments:

  • source: str

Returns srv

Function mk_srv_from_file

fn mk_srv_from_file(file: str) -> srv

Arguments:

  • file: str

Returns srv

Function build_ctxt

fn build_ctxt(ast: @ast::crate) -> ctxt

Arguments:

  • ast: @ast::crate

Returns ctxt

Function exec

fn exec(srv: srv, f: fn~(ctxt: ctxt) -> T) -> T

Arguments:

  • srv: srv
  • f: fn~(ctxt: ctxt) -> T

Returns T

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment