Maintain/Build/Constant.rs
1//=============================================================================//
2// File Path: Element/Maintain/Source/Build/Constant.rs
3//=============================================================================//
4// Module: Constant
5//
6// Brief Description: Build system constants and configuration values.
7//
8// RESPONSIBILITIES:
9// ================
10//
11// Primary:
12// - Provide file path constants
13// - Provide delimiter constants
14// - Provide environment variable name constants
15// - Serve as single source of truth for constant values
16//
17// Secondary:
18// - Ensure consistent naming across the build system
19//
20// ARCHITECTURAL ROLE:
21// ===================
22//
23// Position:
24// - Infrastructure/Configuration layer
25// - Constant definitions
26//
27// Dependencies (What this module requires):
28// - External crates: None
29// - Internal modules: None
30// - Traits implemented: None
31//
32// Dependents (What depends on this module):
33// - Build orchestration functions
34// - Argument parsing module
35// - Product name generation logic
36//
37// IMPLEMENTATION DETAILS:
38// =======================
39//
40// Design Patterns:
41// - Constant module pattern
42//
43// Performance Considerations:
44// - Complexity: O(1) - all are static constants
45// - Memory usage patterns: Static string slices
46// - Hot path optimizations: None needed
47//
48// Thread Safety:
49// - Thread-safe: Yes (all are immutable)
50// - Synchronization mechanisms used: None
51// - Interior mutability considerations: None
52//
53// Error Handling:
54// - Error types returned: None
55// - Recovery strategies: Not applicable
56//
57// EXAMPLES:
58// =========
59//
60// Example 1: Using file path constants
61/// ```rust
62/// use crate::Maintain::Source::Build::Constant;
63/// let cargo_path = project_dir.join(CargoFile);
64/// ```
65// Example 2: Using delimiter constants
66/// ```rust
67/// use crate::Maintain::Source::Build::Constant;
68/// let product_name = parts.join(NameDelimiter);
69/// ```
70// Example 3: Using environment variable constants
71/// ```rust
72/// use crate::Maintain::Source::Build::Constant;
73/// let node_env = std::env::var(NodeEnv);
74/// ```
75//
76//=============================================================================//
77// IMPLEMENTATION
78//=============================================================================//
79
80// File path constants
81pub const CargoFile:&str = "Cargo.toml";
82
83pub const JsonFile:&str = "tauri.conf.json";
84
85pub const JsonfiveFile:&str = "tauri.conf.json5";
86
87pub const PlistFile:&str = "Info.plist";
88
89// Default values
90pub const DirectoryDefault:&str = "Element/Mountain";
91
92pub const NameDefault:&str = "Mountain";
93
94pub const PrefixDefault:&str = "land.editor.binary";
95
96// Delimiter constants
97pub const BackupSuffix:&str = ".Backup";
98
99pub const IdDelimiter:&str = ".";
100
101pub const NameDelimiter:&str = "_";
102
103// Environment variable constants
104pub const BrowserEnv:&str = "Browser";
105
106pub const BundleEnv:&str = "Bundle";
107
108pub const CargoFeaturesEnv:&str = "CargoFeatures";
109
110pub const CleanEnv:&str = "Clean";
111
112pub const CocoonEsbuildDefineEnv:&str = "CocoonEsbuildDefine";
113
114pub const CompileEnv:&str = "Compile";
115
116pub const CompilerEnv:&str = "Compiler";
117
118pub const DebugEnv:&str = "Debug";
119
120pub const DependencyEnv:&str = "Dependency";
121
122pub const DirEnv:&str = "MOUNTAIN_DIR";
123
124pub const ElectronEnv:&str = "Electron";
125
126pub const LogEnv:&str = "RUST_LOG";
127
128pub const MountainEnv:&str = "Mountain";
129
130pub const NameEnv:&str = "MOUNTAIN_ORIGINAL_BASE_NAME";
131
132pub const NodeEnv:&str = "NODE_ENV";
133
134pub const NodeVersionEnv:&str = "NODE_VERSION";
135
136pub const PrefixEnv:&str = "MOUNTAIN_BUNDLE_ID_PREFIX";
137
138// Dev-control environment variables injected into Info.plist LSEnvironment
139// so the .app works when double-clicked (no wrapper script needed).
140pub const LandTraceEnv:&str = "Trace";
141
142pub const LandRecordEnv:&str = "Record";
143
144pub const LandInspectEnv:&str = "Inspect";
145
146pub const LandDisableEnv:&str = "Disable";