getargs-derive-macros 0.1.0

Internal implementation detail of getargs-derive. Not meant for direct use; depend on getargs-derive instead.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use super::{RawContainer, Version};
use crate::model::attr::{parse_string, reject_value, set_once};
use syn::{Token, meta::ParseNestedMeta};

pub(super) fn version(meta: &ParseNestedMeta, raw: &mut RawContainer) -> syn::Result<()> {
    let value = if meta.input.peek(Token![=]) {
        let literal = parse_string(meta, "version", "version = \"1.0.0\"")?;
        let value = literal.value();
        if value.trim().is_empty() {
            return Err(syn::Error::new(literal.span(), "`version` cannot be empty"));
        }
        Version::Literal(value)
    } else {
        reject_value(meta, "version")?;
        Version::Package
    };
    set_once(&mut raw.version, value, meta)
}