eure_codegen_ir/
codegen.rs1pub const DEFAULT_VARIANT_TYPES_SUFFIX: &str = "Type";
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 ext_types_field_prefix: String,
31 #[builder(default)]
32 pub ext_types_type_prefix: String,
33 #[builder(default)]
34 pub document_node_id_field: String,
35}
36
37#[derive(Debug, Clone, PartialEq, Eq, Default)]
38pub enum TypeCodegenIr {
39 #[default]
40 None,
41 Record(RecordCodegenIr),
42 Union(UnionCodegenIr),
43}
44
45#[derive(Debug, Clone, PartialEq, Eq, Default, bon::Builder)]
46pub struct RecordCodegenIr {
47 pub type_name_override: Option<String>,
48 #[builder(default)]
49 pub derive: InheritableCodegenValueIr<Vec<String>>,
50}
51
52#[derive(Debug, Clone, PartialEq, Eq, bon::Builder)]
53pub struct UnionCodegenIr {
54 pub type_name_override: Option<String>,
55 #[builder(default)]
56 pub derive: InheritableCodegenValueIr<Vec<String>>,
57 #[builder(default)]
58 pub variant_types: bool,
59 pub variant_types_suffix_override: Option<String>,
60}
61
62impl Default for UnionCodegenIr {
63 fn default() -> Self {
64 Self {
65 type_name_override: None,
66 derive: InheritableCodegenValueIr::InheritCodegenDefaults,
67 variant_types: false,
68 variant_types_suffix_override: None,
69 }
70 }
71}
72
73#[derive(Debug, Clone, PartialEq, Eq, Default, bon::Builder)]
74pub struct FieldCodegenIr {
75 pub name_override: Option<String>,
76}