aliveline/src/lib.rs

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
}