diff options
| author | Laurenz <laurmaedje@gmail.com> | 2022-12-17 16:24:29 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2022-12-17 16:24:29 +0100 |
| commit | 35b16e545b4fce299edbc00c9a9754179fa51634 (patch) | |
| tree | eb1081e55187e59ff6482abc1ac2f1932606ef59 /macros/src/lib.rs | |
| parent | b6202b646a0d5ecced301d9bac8bfcaf977d7ee4 (diff) | |
Document parameters in comment
Diffstat (limited to 'macros/src/lib.rs')
| -rw-r--r-- | macros/src/lib.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/macros/src/lib.rs b/macros/src/lib.rs index 15dc3ee7..a03dc30e 100644 --- a/macros/src/lib.rs +++ b/macros/src/lib.rs @@ -64,7 +64,7 @@ pub fn castable(stream: BoundaryStream) -> BoundaryStream { } /// Extract documentation comments from an attribute list. -fn doc_comment(attrs: &[syn::Attribute]) -> String { +fn documentation(attrs: &[syn::Attribute]) -> String { let mut doc = String::new(); // Parse doc comments. @@ -72,7 +72,9 @@ fn doc_comment(attrs: &[syn::Attribute]) -> String { if let Ok(syn::Meta::NameValue(meta)) = attr.parse_meta() { if meta.path.is_ident("doc") { if let syn::Lit::Str(string) = &meta.lit { - doc.push_str(&string.value()); + let full = string.value(); + let line = full.strip_prefix(' ').unwrap_or(&full); + doc.push_str(line); doc.push('\n'); } } @@ -81,3 +83,8 @@ fn doc_comment(attrs: &[syn::Attribute]) -> String { doc.trim().into() } + +/// Dedent documentation text. +fn dedent(text: &str) -> String { + text.lines().map(str::trim).collect::<Vec<_>>().join("\n") +} |
