Skip to main content

windjammer_runtime/platform/native/
env.rs

1//! Native environment implementation
2//!
3//! Re-exports the existing windjammer-runtime env module.
4
5// Re-export all functions from the parent env module
6pub use crate::env::*;
7
8// Add any additional functions needed by std::env API
9pub fn get(key: String) -> Option<String> {
10    var(&key).ok()
11}
12
13pub fn get_or(key: String, default: String) -> String {
14    var(&key).unwrap_or(default)
15}
16
17pub fn set(key: String, value: String) {
18    std::env::set_var(key, value);
19}
20
21pub fn remove(key: String) {
22    std::env::remove_var(key);
23}
24
25pub fn vars() -> Vec<(String, String)> {
26    std::env::vars().collect()
27}
28
29pub fn home_dir() -> Option<String> {
30    dirs::home_dir().map(|p| p.to_string_lossy().to_string())
31}
32
33pub fn temp_dir() -> String {
34    std::env::temp_dir().to_string_lossy().to_string()
35}