avx_config/
lib.rs

1use serde::{Deserialize, Serialize};
2use std::env;
3use anyhow::Result;
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
6pub struct AvxConfig {
7    pub stack: String,
8    pub layer: String,
9    pub env: String,
10    pub cluster: String,
11    pub mesh: String,
12}
13
14impl AvxConfig {
15    pub fn load() -> Result<Self> {
16        Ok(Self {
17            stack: env::var("AVX__STACK").unwrap_or_else(|_| "default".into()),
18            layer: env::var("AVX__LAYER").unwrap_or_else(|_| "core".into()),
19            env: env::var("AVX__ENV").unwrap_or_else(|_| "dev".into()),
20            cluster: env::var("AVX__CLUSTER").unwrap_or_else(|_| "local".into()),
21            mesh: env::var("AVX__MESH").unwrap_or_else(|_| "default".into()),
22        })
23    }
24
25    pub fn with_defaults() -> Self {
26        Self {
27            stack: "default".into(),
28            layer: "core".into(),
29            env: "dev".into(),
30            cluster: "local".into(),
31            mesh: "default".into(),
32        }
33    }
34}