4 releases
| 0.2.2 | Dec 14, 2024 |
|---|---|
| 0.2.1 | Nov 11, 2023 |
| 0.2.0 | Sep 10, 2023 |
| 0.1.0 | Oct 1, 2022 |
#1646 in Command line utilities
Used in 4 crates
(via yash-semantics)
165KB
4.5K
SLoC
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)));
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.
Dependencies
~215–650KB
~15K SLoC