use darling::ast::Data;
use darling::util::Ignored;
use darling::{FromDeriveInput, FromField, FromMeta};
use syn::{Ident, Type};
#[derive(FromDeriveInput)]
#[darling(attributes(model))]
pub struct ModelArgs {
pub ident: Ident,
pub data: Data<Ignored, VariableArgs>,
pub name: Option<String>,
pub impl_from: Option<bool>,
}
#[derive(FromField)]
#[darling(attributes(entry))]
pub struct VariableArgs {
pub ident: Option<Ident>,
pub ty: Type,
pub position: VariablePosition,
}
#[derive(FromMeta, PartialEq, Eq)]
#[darling(rename_all = "lowercase")]
pub enum VariablePosition {
Key,
Value,
}