fn parse_cmd_attr()

in chrony-candm-derive/src/lib.rs [255:272]


fn parse_cmd_attr(attrs: &[syn::Attribute]) -> Option<u16> {
    for attr in attrs.iter() {
        if let Ok(syn::Meta::NameValue(meta_namevalue)) = attr.parse_meta() {
            if meta_namevalue.path.is_ident("cmd") {
                if let syn::Lit::Int(i) = meta_namevalue.lit {
                    match i.base10_parse() {
                        Ok(cmd) => return Some(cmd),
                        Err(e) => panic!("{}", e),
                    }
                } else {
                    panic!("Argument to cmd attribute must be an integer literal")
                }
            }
        }
    }

    None
}