fn get_queriable_struct_props()

in below/below_derive/src/queriable.rs [106:126]


fn get_queriable_struct_props(ast: &DeriveInput) -> syn::Result<QueriableStructProps> {
    let mut field_id_name = None;
    let mut field_id_name_kw = None;
    for meta in get_metadata("queriable", &ast.attrs)? {
        match meta {
            StructMeta::FieldIdName { value, kw } => {
                if let Some(fst_kw) = field_id_name_kw {
                    return Err(occurrence_error(fst_kw, kw, "field_id_name"));
                }
                field_id_name_kw = Some(kw);
                field_id_name = Some(value);
            }
        }
    }
    Ok(QueriableStructProps {
        field_id_name: field_id_name
            // Add `FieldId` suffix for default FieldId enum name.
            .unwrap_or_else(|| Ident::new(&format!("{}FieldId", ast.ident), ast.ident.span())),
        ident: ast.ident.clone(),
    })
}