Skip to main content

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";
82pub const JsonFile:&str = "tauri.conf.json";
83pub const JsonfiveFile:&str = "tauri.conf.json5";
84
85// Default values
86pub const DirectoryDefault:&str = "Element/Mountain";
87pub const NameDefault:&str = "Mountain";
88pub const PrefixDefault:&str = "land.editor.binary";
89
90// Delimiter constants
91pub const BackupSuffix:&str = ".Backup";
92pub const IdDelimiter:&str = ".";
93pub const NameDelimiter:&str = "_";
94
95// Environment variable constants
96pub const BrowserEnv:&str = "Browser";
97pub const BundleEnv:&str = "Bundle";
98pub const CleanEnv:&str = "Clean";
99pub const CompileEnv:&str = "Compile";
100pub const DebugEnv:&str = "Debug";
101pub const DependencyEnv:&str = "Dependency";
102pub const DirEnv:&str = "MOUNTAIN_DIR";
103pub const LogEnv:&str = "RUST_LOG";
104pub const NameEnv:&str = "MOUNTAIN_ORIGINAL_BASE_NAME";
105pub const NodeEnv:&str = "NODE_ENV";
106pub const NodeVersionEnv:&str = "NODE_VERSION";
107pub const PrefixEnv:&str = "MOUNTAIN_BUNDLE_ID_PREFIX";