1 个不稳定版本

使用旧的Rust 2015

0.1.1 2016年8月11日
0.1.0 2016年8月7日

#87#posix

Download history 69/week @ 2024-07-28

69 每月下载量

MIT 协议

15KB
190

varsun:Rust的变量替换函数

varsun是什么 - 关于varsun -

想要Go语言中的os.ExpandEnv的类似功能,但在标准库中没有找到。因此,我尝试创建一个具有所需功能的库,结果就是现在的varsun

功能 - Features -

  • 可以找到并替换$foo${bar}
  • 也支持%foo%
  • 使用varsun底下的函数,Windows下自动识别%foo%,其他情况下识别%foo
  • 还包含了环境变量展开功能。
    • 可以作为使用参考。

待办事项 - TODO -

  • 高效的字符串搜索
    • 逐字查找确实效率不高
  • 想使用宏
  • 基准测试
    • cargo bench 无法运行(´・ω・`)

使用方法 - Usage -

extern crate varsun;

// on Linux system.
let homedir = varsun::substitute("$HOME", |name: &str| -> Option<String> {
    match ::std::env::var(name) {
        Ok(val) => Some(val),
        Err(_)  => NOne,
    }
});

// on Windows.
let homedir = varsun::substitute("%USERPROFILE%", |name: &str| -> Option<String> {
    match ::std::env::var(name) {
        Ok(val) => Some(val),
        Err(_)  => None,
    }
});

始终使用POSIX风格($HOGE) - Use POSIX style always -

extern crate varsun;

// on Linux.
let homedir = varsun::posix::substitute("${HOME}", |name: &str| -> Option<String> {
    match ::std::env::var(name) {
        Ok(val) => Some(val),
        Err(_)  => None,
    }
});

// on Windows.
let homedir = varsun::posix::substitute("${USERPROFILE}", |name: &str| -> Option<String> {
    match ::std::env::var(name) {
        Ok(val) => Some(val),
        Err(_)  => None,
    }
});

始终使用Windows风格(%HOGE%) - Use Windows style always -

extern crate varsun;

// on Linux.
let homedir = varsun::windows::substitute("%HOME%", |name: &str| -> Option<String> {
    match ::std::env::var(name) {
        Ok(val) => Some(val),
        Err(_)  => None,
    }
});

// on Windows.
let homedir = varsun::windows::substitute("%USERPROFILE%", |name: &str| -> Option<String> {
    match ::std::env::var(name) {
        Ok(val) => Some(val),
        Err(_)  => None,
    }
});

作者 - Author -

TANAKA Kenichi 即 chikuchikugonzalez (ちくちく('ω')ごんざれす)

许可证 - LICENSE -

MIT许可证

无运行时依赖