u2400_pathnode 0.1.6

path cluster base library
Documentation
use std::{
    collections::HashMap,
    time::{SystemTime, UNIX_EPOCH},
};

//公共枚举值
pub enum NodeTokens {
    DoNotClusterToken,
    UnknownToken,
}

//token字符串换token枚举值
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,
    }
}

//token枚举值换token字符串
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
}