1 unstable release
Uses old Rust 2015
0.1.1 | Aug 11, 2016 |
---|---|
0.1.0 |
|
#89 in #posix
15KB
190 lines
varsun: Variable Substituion Functions(s) for Rust
varsunとは - About of 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 ($HOGE
) 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 (%HOGE%
) 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 aka chikuchikugonzalez (ちくちく('ω')ごんざれす)