gather_all_code_from_crates/
extract_signature.rs1crate::ix!();
2
3pub fn extract_signature(fn_def: &ast::Fn, remove_doc_comments: bool) -> String {
4 let vis_str = fn_def.visibility()
5 .map(|v| v.syntax().text().to_string() + " ")
6 .unwrap_or_default();
7
8 let name_str = fn_def.name()
9 .map(|n| n.text().to_string())
10 .unwrap_or_default();
11
12 let params_str = fn_def.param_list()
13 .map(|p| p.syntax().text().to_string())
14 .unwrap_or_else(|| "()".to_string());
15
16 let ret_str = fn_def.ret_type()
17 .map(|r| format!(" {}", r.syntax().text()))
18 .unwrap_or_default();
19
20 let mut signature = format!("{}fn {}{}{}", vis_str, name_str, params_str, ret_str);
21
22 if remove_doc_comments {
23 signature = filter_doc_comments(&signature, true);
25 }
26
27 signature.trim_end().to_string()
28}