1use eure_macros::{FromEure, IntoEure};
4
5#[derive(Debug, Clone, Default, PartialEq, Eq, FromEure, IntoEure)]
7#[eure(crate = eure_document)]
8pub struct RootCodegen {
9 #[eure(rename = "type", default)]
11 pub type_name: Option<String>,
12}
13
14#[derive(Debug, Clone, Default, PartialEq, Eq, FromEure, IntoEure)]
16#[eure(crate = eure_document, rename_all = "kebab-case")]
17pub struct CodegenDefaults {
18 #[eure(default)]
20 pub derive: Option<Vec<String>>,
21 #[eure(default)]
23 pub ext_types_field_prefix: Option<String>,
24 #[eure(default)]
26 pub ext_types_type_prefix: Option<String>,
27 #[eure(default)]
29 pub document_node_id_field: Option<String>,
30}
31
32#[derive(Debug, Clone, Default, PartialEq, Eq, FromEure, IntoEure)]
34#[eure(crate = eure_document)]
35pub struct RecordCodegen {
36 #[eure(rename = "type", default)]
38 pub type_name: Option<String>,
39 #[eure(default)]
41 pub derive: Option<Vec<String>>,
42}
43
44#[derive(Debug, Clone, Default, PartialEq, Eq, FromEure, IntoEure)]
46#[eure(crate = eure_document, rename_all = "kebab-case")]
47pub struct UnionCodegen {
48 #[eure(rename = "type", default)]
50 pub type_name: Option<String>,
51 #[eure(default)]
53 pub derive: Option<Vec<String>>,
54 #[eure(default)]
56 pub variant_types: Option<bool>,
57 #[eure(default)]
59 pub variant_types_suffix: Option<String>,
60}
61
62#[derive(Debug, Clone, Default, PartialEq, Eq, FromEure, IntoEure)]
64#[eure(crate = eure_document)]
65pub struct FieldCodegen {
66 #[eure(default)]
68 pub name: Option<String>,
69}
70
71#[derive(Debug, Clone, Default, PartialEq, Eq)]
73pub enum TypeCodegen {
74 #[default]
75 None,
76 Record(RecordCodegen),
77 Union(UnionCodegen),
78}