1
Fork 0

rustdoc: Introduce type doc::argdoc

This commit is contained in:
Brian Anderson 2012-01-18 14:47:18 -08:00
parent 38852bf0a4
commit 29df58d73b
4 changed files with 17 additions and 12 deletions

View file

@ -99,9 +99,9 @@ fn fold_fn(
} }
fn merge_arg_attrs( fn merge_arg_attrs(
doc: [(str, str)], doc: [doc::argdoc],
_attrs: [attr_parser::arg_attrs] _attrs: [attr_parser::arg_attrs]
) -> [(str, str)] { ) -> [doc::argdoc] {
// FIXME // FIXME
doc doc
} }

View file

@ -18,7 +18,11 @@ type fndoc = ~{
brief: option<str>, brief: option<str>,
desc: option<str>, desc: option<str>,
return: option<retdoc>, return: option<retdoc>,
args: [(str, str)] args: [argdoc]
};
type argdoc = ~{
name: str
}; };
type retdoc = { type retdoc = {

View file

@ -85,16 +85,18 @@ fn should_extract_fn_args() {
let ast = parse::from_str(source); let ast = parse::from_str(source);
let doc = extract(ast, ""); let doc = extract(ast, "");
let fn_ = doc.topmod.fns[0]; let fn_ = doc.topmod.fns[0];
assert tuple::first(fn_.args[0]) == "b"; assert fn_.args[0].name == "b";
assert tuple::first(fn_.args[1]) == "c"; assert fn_.args[1].name == "c";
} }
fn argdocs_from_args(args: [ast::arg]) -> [(str, str)] { fn argdocs_from_args(args: [ast::arg]) -> [doc::argdoc] {
vec::map(args, argdoc_from_arg) vec::map(args, argdoc_from_arg)
} }
fn argdoc_from_arg(arg: ast::arg) -> (str, str) { fn argdoc_from_arg(arg: ast::arg) -> doc::argdoc {
(arg.ident, "") ~{
name: arg.ident
}
} }
#[cfg(test)] #[cfg(test)]

View file

@ -125,11 +125,10 @@ fn write_desc(
fn write_args( fn write_args(
ctxt: ctxt, ctxt: ctxt,
args: [(str, str)] args: [doc::argdoc]
) { ) {
for (arg, desc) in args { for arg in args {
ctxt.w.write_str("### Argument `" + arg + "`: "); ctxt.w.write_str("### Argument `" + arg.name + "`: ");
ctxt.w.write_str(desc)
} }
} }