\n");
if let Some(doc_comment) = stmt.doc_comment {
docs.push_str(&format!("
{doc_comment}
\n"));
}
if let Some(expr) = &var_def.value {
match &expr.kind {
ExprKind::Func(func) => {
if !func.params.is_empty() {
docs.push_str("
Parameters
\n");
docs.push_str("
\n");
for param in &func.params {
docs.push_str(&format!(" - {}
\n", param.name));
}
docs.push_str("
\n");
}
if !func.named_params.is_empty() {
docs.push_str("
Named parameters
\n");
docs.push_str("
\n");
for param in &func.named_params {
docs.push_str(&format!(" - {}
\n", param.name));
}
docs.push_str("
\n");
}
if let Some(return_ty) = &func.return_ty {
docs.push_str("
Returns
\n");
match &return_ty.kind {
TyKind::Ident(ident) => {
docs.push_str(&format!("
{}
\n", ident.name));
}
TyKind::Primitive(primitive) => {
docs.push_str(&format!("
{primitive}
\n"));
}
_ => docs.push_str("
Not implemented
\n"),
}
}
}
ExprKind::Pipeline(_) => {
docs.push_str("
There is a pipeline.
\n");
}
_ => (),
}
}
docs.push_str("
\n");
docs.push_str("