anchor_syn/parser/
docs.rs1use syn::{Lit::Str, Meta::NameValue};
2
3pub fn parse(attrs: &[syn::Attribute]) -> Option<Vec<String>> {
5 let doc_strings: Vec<String> = attrs
6 .iter()
7 .filter_map(|attr| match attr.parse_meta() {
8 Ok(NameValue(meta)) => {
9 if meta.path.is_ident("doc") {
10 if let Str(doc) = meta.lit {
11 let val = doc.value().trim().to_string();
12 if val.starts_with("CHECK:") {
13 return None;
14 }
15 return Some(val);
16 }
17 }
18 None
19 }
20 _ => None,
21 })
22 .collect();
23 if doc_strings.is_empty() {
24 None
25 } else {
26 Some(doc_strings)
27 }
28}