23 lines
657 B
Rust
23 lines
657 B
Rust
use config::Config;
|
|
use std::{hash::{DefaultHasher, Hash, Hasher}, path::PathBuf};
|
|
|
|
pub mod config;
|
|
pub mod log;
|
|
|
|
pub fn load_config() -> Config {
|
|
if let Ok(path_str) = std::env::var("XDG_CONFIG_HOME") {
|
|
let mut path = PathBuf::from(path_str);
|
|
path.push("aliveline");
|
|
path.push("config.toml");
|
|
return Config::load(path);
|
|
}
|
|
Config::new(PathBuf::from("./config.toml"))
|
|
}
|
|
|
|
/// Get random-like color id in range 0..16 by computing string hash
|
|
pub fn color_id_from_name(name: String) -> i32 {
|
|
let mut s = DefaultHasher::new();
|
|
name.hash(&mut s);
|
|
let hash = s.finish();
|
|
(hash.count_ones() / 4) as i32
|
|
}
|