///|
fn render_docs_list() -> String {
@docs.docs
.map(doc => {
let (name, summary, _) = doc
"\{name}\t\{summary}"
})
.join("\n")
}
///|
fn render_doc_body(name : String) -> String raise {
match
@docs.docs.search_by(doc => {
let (doc_name, _, _) = doc
doc_name == name
}) {
Some(index) => {
let (_, _, body) = @docs.docs[index]
body
}
None =>
raise CliError::Usage(message="unknown document: \{name}", exit_code=2)
}
}
///|
fn render_docs_command(
command : (String, CliOptions?, String?),
) -> String raise {
match command {
("docs-list", None, None) => render_docs_list()
("docs-show", None, Some(name)) => render_doc_body(name)
_ => fail("expected docs command")
}
}