eure_codegen_ir/
codegen.rs1pub const DEFAULT_VARIANT_TYPES_SUFFIX: &str = "Data";
2
3#[derive(Debug, Clone, PartialEq, Eq, Default)]
4pub enum InheritableCodegenValueIr<T> {
5 #[default]
6 InheritCodegenDefaults,
7 Value(T),
8}
9
10impl<T> InheritableCodegenValueIr<T> {
11 pub fn inherit() -> Self {
12 Self::InheritCodegenDefaults
13 }
14
15 pub fn explicit(value: T) -> Self {
16 Self::Value(value)
17 }
18}
19
20#[derive(Debug, Clone, PartialEq, Eq, Default, bon::Builder)]
21pub struct RootCodegenIr {
22 pub type_name_override: Option<String>,
23}
24
25#[derive(Debug, Clone, PartialEq, Eq, Default, bon::Builder)]
26pub struct CodegenDefaultsIr {
27 #[builder(default)]
28 pub derive: Vec<String>,
29 #[builder(default)]
30 pub inline_derive: Vec<String>,
31 #[builder(default)]
32 pub variant_type_derive: Vec<String>,
33 #[builder(default)]
34 pub ext_types_field_prefix: String,
35 #[builder(default)]
36 pub ext_types_type_prefix: String,
37 #[builder(default)]
38 pub document_node_id_field: String,
39}
40
41#[derive(Debug, Clone, PartialEq, Eq, Default)]
42pub enum TypeCodegenIr {
43 #[default]
44 None,
45 Record(RecordCodegenIr),
46 Union(UnionCodegenIr),
47}
48
49#[derive(Debug, Clone, PartialEq, Eq, Default, bon::Builder)]
50pub struct RecordCodegenIr {
51 pub type_name_override: Option<String>,
52 #[builder(default)]
53 pub derive: InheritableCodegenValueIr<Vec<String>>,
54 #[builder(default)]
55 pub inline_derive: InheritableCodegenValueIr<Vec<String>>,
56}
57
58#[derive(Debug, Clone, PartialEq, Eq, bon::Builder)]
59pub struct UnionCodegenIr {
60 pub type_name_override: Option<String>,
61 #[builder(default)]
62 pub derive: InheritableCodegenValueIr<Vec<String>>,
63 #[builder(default)]
64 pub inline_derive: InheritableCodegenValueIr<Vec<String>>,
65 #[builder(default)]
66 pub variant_types: bool,
67 pub variant_types_suffix_override: Option<String>,
68 #[builder(default)]
69 pub variant_type_derive: InheritableCodegenValueIr<Vec<String>>,
70}
71
72impl Default for UnionCodegenIr {
73 fn default() -> Self {
74 Self {
75 type_name_override: None,
76 derive: InheritableCodegenValueIr::InheritCodegenDefaults,
77 inline_derive: InheritableCodegenValueIr::InheritCodegenDefaults,
78 variant_types: false,
79 variant_types_suffix_override: None,
80 variant_type_derive: InheritableCodegenValueIr::InheritCodegenDefaults,
81 }
82 }
83}
84
85#[derive(Debug, Clone, PartialEq, Eq, Default, bon::Builder)]
86pub struct FieldCodegenIr {
87 pub name_override: Option<String>,
88}