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 inline_derive: Option<Vec<String>>,
24 #[eure(default)]
26 pub variant_type_derive: Option<Vec<String>>,
27 #[eure(default)]
29 pub ext_types_field_prefix: Option<String>,
30 #[eure(default)]
32 pub ext_types_type_prefix: Option<String>,
33 #[eure(default)]
35 pub document_node_id_field: Option<String>,
36}
37
38#[derive(Debug, Clone, Default, PartialEq, Eq, FromEure, IntoEure)]
40#[eure(crate = eure_document, rename_all = "kebab-case")]
41pub struct RecordCodegen {
42 #[eure(rename = "type", default)]
44 pub type_name: Option<String>,
45 #[eure(default)]
47 pub derive: Option<Vec<String>>,
48 #[eure(default)]
50 pub inline_derive: Option<Vec<String>>,
51}
52
53#[derive(Debug, Clone, Default, PartialEq, Eq, FromEure, IntoEure)]
55#[eure(crate = eure_document, rename_all = "kebab-case")]
56pub struct UnionCodegen {
57 #[eure(rename = "type", default)]
59 pub type_name: Option<String>,
60 #[eure(default)]
62 pub derive: Option<Vec<String>>,
63 #[eure(default)]
65 pub inline_derive: Option<Vec<String>>,
66 #[eure(default)]
68 pub variant_types: Option<bool>,
69 #[eure(default)]
71 pub variant_types_suffix: Option<String>,
72 #[eure(default)]
74 pub variant_type_derive: Option<Vec<String>>,
75}
76
77#[derive(Debug, Clone, Default, PartialEq, Eq, FromEure, IntoEure)]
79#[eure(crate = eure_document)]
80pub struct FieldCodegen {
81 #[eure(default)]
83 pub name: Option<String>,
84}
85
86#[derive(Debug, Clone, Default, PartialEq, Eq)]
88pub enum TypeCodegen {
89 #[default]
90 None,
91 Record(RecordCodegen),
92 Union(UnionCodegen),
93}