3 unstable releases
0.2.1 | Nov 11, 2023 |
---|---|
0.2.0 | Sep 10, 2023 |
0.1.0 | Oct 1, 2022 |
#778 in Math
Used in 4 crates
(via yash-semantics)
165KB
4.5K
SLoC
Yash-arith
yash-arith
is a Rust library crate for performing the POSIX shell's arithmetic
expansion. This crate is part of yash but can be used
independently.
Usage
Add yash-arith
as a dependency in your Cargo.toml
.
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)));
License
This crate is distributed under GPLv3.
lib.rs
:
This crate implements shell arithmetic expansion.
Arithmetic expansion evaluates an expression that may contain some operators that perform basic maths. The expression is given as a string and parsed like an expression in C. The expression can include variables that interact with the environment.
To evaluate an expression, you call the [eval()
] function with a string
and an environment.
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)));
Dependencies
~240–690KB
~16K SLoC