zlsrs 0.1.6

Rust 标准库扩展工具集,提供更便捷的使用方式
Documentation
use super::*;

pub fn test_path() {
    let _ = set_project_dir(get_exe_dir());

    let project_dir = get_project_dir();
    println!("项目目录: {:?}", project_dir.to_str());

    // 当前目录下的路径
    let path = ZPath::new("test.txt");
    println!("文件路径: {:?}", path.to_str());
    println!("是否在当前目录下: {:?}", path.is_in_project_dir());
    assert!(path.is_in_project_dir());

    // 不安全的相对路径
    let path = ZPath::new("../aa/test.txt");
    println!("文件路径: {:?}", path.to_str());
    println!("是否在当前目录下: {:?}", path.is_in_project_dir());
    assert!(!path.is_in_project_dir());

    // 不安全的相对路径
    let path = ZPath::new("../deps/test.txt");
    println!("文件路径: {:?}", path.to_str());
    println!("是否在当前目录下: {:?}", path.is_in_project_dir());
    assert!(path.is_in_project_dir());

    // Windows 风格的路径
    let path = ZPath::new("c:\\xxx\\test.txt");
    println!("文件路径: {:?}", path.to_str());
    println!("是否在当前目录下: {:?}", path.is_in_project_dir());
    assert!(!path.is_in_project_dir());

    // Unix 风格的绝对路径(其他路径)
    let path = ZPath::new("/other/path/test.txt");
    println!("文件路径: {:?}", path.to_str());
    println!("是否在当前目录下: {:?}", path.is_in_project_dir());
    assert!(!path.is_in_project_dir());
}

pub fn test_dir() {
    let path = get_work_dir();
    println!("工作目录: {:?}", path.to_str());

    let exe_dir = get_exe_dir();
    println!("程序目录: {:?}", exe_dir.to_str());
}

pub fn project_dir_type() {
    let path = get_project_dir();
    println!("项目目录: {:?}", path.to_str());

    let _ = set_project_dir(get_exe_dir());

    let path = get_project_dir();
    println!("项目目录: {:?}", path.to_str());

    let _ = set_project_dir(get_work_dir());
    let path = get_project_dir();
    println!("项目目录: {:?}", path.to_str());

    let tmp_dir = ZPath::from(get_tmp_dir().join("test_project_dir_type"));

    let err = set_project_dir(tmp_dir.clone());
    assert!(err.is_ok());

    let path = get_project_dir();
    println!("项目目录: {:?}", path.to_str());

    assert_eq!(path.to_str(), tmp_dir.to_str());
}