3 个不稳定版本

0.2.1 2023年11月11日
0.2.0 2023年9月10日
0.1.0 2022年10月1日

命令行工具 中排名第 2949

每月下载量 39
4 个crate中使用(通过 yash-semantics

GPL-3.0-or-later

165KB
4.5K SLoC

Yash-arith

yash-arith 是一个用于执行 POSIX shell 的算术展开的 Rust 库crate。此crate是yash的一部分,但也可以独立使用。

yash-arith at crates.io yash-arith at docs.rs Build status

用法

在您的 Cargo.toml 中将 yash-arith 添加为依赖项。

use std::collections::HashMap;
use yash_arith::{eval, Value};
let mut env = HashMap::new();
env.insert("a".to_owned(), "2".to_owned());
let result = eval("1 + a", &mut env);
assert_eq!(result, Ok(Value::Integer(3)));

许可证

此crate根据GPLv3分发。


lib.rs:

此crate实现了shell算术展开。

算术展开评估可能包含一些执行基本数学运算的运算符的表达式。表达式以字符串形式给出,并像C语言中的表达式一样解析。表达式可以包含与环境交互的变量。

要评估一个表达式,您可以使用字符串和环境调用 [eval()] 函数。

use std::collections::HashMap;
use yash_arith::{eval, Value};
let mut env = HashMap::new();
env.insert("a".to_owned(), "2".to_owned());
let result = eval("1 + a", &mut env);
assert_eq!(result, Ok(Value::Integer(3)));

依赖项

~275–730KB
~17K SLoC