summaryrefslogtreecommitdiff
path: root/macros/src/lib.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2022-12-17 16:24:29 +0100
committerLaurenz <laurmaedje@gmail.com>2022-12-17 16:24:29 +0100
commit35b16e545b4fce299edbc00c9a9754179fa51634 (patch)
treeeb1081e55187e59ff6482abc1ac2f1932606ef59 /macros/src/lib.rs
parentb6202b646a0d5ecced301d9bac8bfcaf977d7ee4 (diff)
Document parameters in comment
Diffstat (limited to 'macros/src/lib.rs')
-rw-r--r--macros/src/lib.rs11
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")
+}