eure_codegen/config.rs
1//! Configuration for code generation.
2
3/// Visibility of generated types.
4#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
5pub enum Visibility {
6 /// Public visibility (`pub`).
7 #[default]
8 Pub,
9 /// Crate-level visibility (`pub(crate)`).
10 PubCrate,
11 /// Private visibility (no modifier).
12 Private,
13}
14
15/// Configuration for code generation.
16///
17/// Use the builder pattern to construct:
18/// ```ignore
19/// let config = GenerationConfig::builder()
20/// .serde_serialize(true)
21/// .serde_deserialize(true)
22/// .build();
23/// ```
24#[derive(Debug, Clone, bon::Builder)]
25pub struct GenerationConfig {
26 /// Generate `EureExtract` implementations.
27 #[builder(default = true)]
28 pub extract: bool,
29
30 /// Derive `serde::Serialize` for generated types.
31 #[builder(default = true)]
32 pub serde_serialize: bool,
33
34 /// Derive `serde::Deserialize` for generated types.
35 #[builder(default = true)]
36 pub serde_deserialize: bool,
37
38 /// Visibility of generated types.
39 #[builder(default)]
40 pub visibility: Visibility,
41
42 /// Add `#[allow(...)]` attributes to suppress warnings.
43 #[builder(default = true)]
44 pub allow_warnings: bool,
45}