Rustdoc - The Rust documentation generator
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 passesdoc
:doc::cratedoc
- The document to transformpasses
:[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
fn run(source_file: str)
Runs rustdoc over the given file
Arguments:
source_file
:str
AST-parsing helpers
fn new_parse_sess() -> parser::parse_sess
Returns parser::parse_sess
fn from_file(file: str) -> @ast::crate
Arguments:
file
:str
Returns @ast::crate
fn from_str(source: str) -> @ast::crate
Arguments:
source
:str
Returns @ast::crate
Converts the Rust AST to the rustdoc document model
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
fn extract(crate: @ast::crate, default_name: str) -> doc::cratedoc
Arguments:
crate
:@ast::crate
default_name
:str
Returns doc::cratedoc
fn top_moddoc_from_crate(crate: @ast::crate, default_name: str) -> doc::moddoc
Arguments:
crate
:@ast::crate
default_name
:str
Returns doc::moddoc
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
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
fn argdocs_from_args(args: [ast::arg]) -> [doc::argdoc]
Arguments:
args
:[ast::arg]
Returns [doc::argdoc]
fn argdoc_from_arg(arg: ast::arg) -> doc::argdoc
Arguments:
arg
:ast::arg
Returns doc::argdoc
Attribute parsing
The attribute parser provides methods for pulling documentation out of an AST's attributes.
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>
fn parse_crate(attrs: [ast::attribute]) -> crate_attrs
Arguments:
attrs
:[ast::attribute]
Returns crate_attrs
fn parse_mod(attrs: [ast::attribute]) -> mod_attrs
Arguments:
attrs
:[ast::attribute]
Returns mod_attrs
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
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
fn parse_fn(attrs: [ast::attribute]) -> fn_attrs
Arguments:
attrs
:[ast::attribute]
Returns fn_attrs
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
The document model
Generate markdown from a document tree
fn mk_pass(writer: fn~() -> io::writer) -> pass
Arguments:
writer
:fn~() -> io::writer
Returns pass
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>
fn default_seq_fold(ctxt: T) -> fold<T>
Arguments:
ctxt
:T
Returns fold<T>
fn default_seq_fold_crate(fold: fold<T>, doc: doc::cratedoc) -> doc::cratedoc
Arguments:
fold
:fold<T>
doc
:doc::cratedoc
Returns doc::cratedoc
fn default_seq_fold_mod(fold: fold<T>, doc: doc::moddoc) -> doc::moddoc
Arguments:
fold
:fold<T>
doc
:doc::moddoc
Returns doc::moddoc
fn default_seq_fold_fn(_fold: fold<T>, doc: doc::fndoc) -> doc::fndoc
Arguments:
_fold
:fold<T>
doc
:doc::fndoc
Returns doc::fndoc
fn default_seq_fold_modlist(fold: fold<T>, list: doc::modlist) -> doc::modlist
Arguments:
fold
:fold<T>
list
:doc::modlist
Returns doc::modlist
fn default_seq_fold_fnlist(fold: fold<T>, list: doc::fnlist) -> doc::fnlist
Arguments:
fold
:fold<T>
list
:doc::fnlist
Returns doc::fnlist
Records the full path to items
fn mk_pass() -> pass
Returns pass
fn run(srv: astsrv::srv, doc: doc::cratedoc) -> doc::cratedoc
Arguments:
srv
:astsrv::srv
doc
:doc::cratedoc
Returns doc::cratedoc
fn fold_mod(fold: fold::fold<ctxt>, doc: doc::moddoc) -> doc::moddoc
Arguments:
fold
:fold::fold<ctxt>
doc
:doc::moddoc
Returns doc::moddoc
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.
fn mk_pass() -> pass
Returns pass
fn run(srv: astsrv::srv, doc: doc::cratedoc) -> doc::cratedoc
Arguments:
srv
:astsrv::srv
doc
:doc::cratedoc
Returns doc::cratedoc
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
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
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
Pulls type information out of the AST and attaches it to the document
fn mk_pass() -> pass
Returns pass
fn run(srv: astsrv::srv, doc: doc::cratedoc) -> doc::cratedoc
Arguments:
srv
:astsrv::srv
doc
:doc::cratedoc
Returns doc::cratedoc
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
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>
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>
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>
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]
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)]
Prunes branches of the document tree that contain no documentation
fn mk_pass() -> pass
Returns pass
fn run(_srv: astsrv::srv, doc: doc::cratedoc) -> doc::cratedoc
Arguments:
_srv
:astsrv::srv
doc
:doc::cratedoc
Returns doc::cratedoc
fn fold_fn(fold: fold::fold<ctxt>, doc: doc::fndoc) -> doc::fndoc
Arguments:
fold
:fold::fold<ctxt>
doc
:doc::fndoc
Returns doc::fndoc
fn fold_fnlist(fold: fold::fold<ctxt>, list: doc::fnlist) -> doc::fnlist
Arguments:
fold
:fold::fold<ctxt>
list
:doc::fnlist
Returns doc::fnlist
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.
fn mk_srv_from_str(source: str) -> srv
Arguments:
source
:str
Returns srv
fn mk_srv_from_file(file: str) -> srv
Arguments:
file
:str
Returns srv
fn build_ctxt(ast: @ast::crate) -> ctxt
Arguments:
ast
:@ast::crate
Returns ctxt
fn exec(srv: srv, f: fn~(ctxt: ctxt) -> T) -> T
Arguments:
srv
:srv
f
:fn~(ctxt: ctxt) -> T
Returns T