use eure_macros::{FromEure, IntoEure};
#[derive(Debug, Clone, Default, PartialEq, Eq, FromEure, IntoEure)]
#[eure(crate = eure_document)]
pub struct RootCodegen {
#[eure(rename = "type", default)]
pub type_name: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Eq, FromEure, IntoEure)]
#[eure(crate = eure_document, rename_all = "kebab-case")]
pub struct CodegenDefaults {
#[eure(default)]
pub derive: Option<Vec<String>>,
#[eure(default)]
pub ext_types_field_prefix: Option<String>,
#[eure(default)]
pub ext_types_type_prefix: Option<String>,
#[eure(default)]
pub document_node_id_field: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Eq, FromEure, IntoEure)]
#[eure(crate = eure_document)]
pub struct RecordCodegen {
#[eure(rename = "type", default)]
pub type_name: Option<String>,
#[eure(default)]
pub derive: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, PartialEq, Eq, FromEure, IntoEure)]
#[eure(crate = eure_document, rename_all = "kebab-case")]
pub struct UnionCodegen {
#[eure(rename = "type", default)]
pub type_name: Option<String>,
#[eure(default)]
pub derive: Option<Vec<String>>,
#[eure(default)]
pub variant_types: Option<bool>,
#[eure(default)]
pub variant_types_suffix: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Eq, FromEure, IntoEure)]
#[eure(crate = eure_document)]
pub struct FieldCodegen {
#[eure(default)]
pub name: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Eq)]
pub enum TypeCodegen {
#[default]
None,
Record(RecordCodegen),
Union(UnionCodegen),
}