use std::{
collections::HashMap,
time::{SystemTime, UNIX_EPOCH},
};
pub enum NodeTokens {
DoNotClusterToken,
UnknownToken,
}
pub fn string2token(token_string: String) -> NodeTokens {
let token_str = token_string.as_str();
match token_str {
"[DO_NOT_CLUSTER_TOKEN]" => NodeTokens::DoNotClusterToken,
_ => NodeTokens::UnknownToken,
}
}
pub fn token2string(token: NodeTokens) -> String {
match token {
NodeTokens::DoNotClusterToken => "[DO_NOT_CLUSTER_TOKEN]",
_ => "[UNKNOWN_TOKEN]",
}.to_string()
}
pub fn get_now_time() -> u64 {
SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap()
.as_secs()
}
pub fn get_micro_unix_timestemp() -> u128 {
SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap()
.as_micros()
}
pub fn get_hashmap_keys<V>(h: &HashMap<String, V>) -> Vec<String> {
let keys: Vec<String> = h.keys().map(|x| x.clone()).collect();
return keys;
}
pub fn path_to_node_list<'a>(path: &'a str) -> Vec<&'a str> {
let node_name_list: Vec<&str> = path.split("/").filter(|x| *x != "").collect();
node_name_list
}