6个版本
0.3.0 | 2022年7月28日 |
---|---|
0.2.1 | 2022年7月27日 |
0.1.2 | 2022年7月23日 |
#131 in 解析工具
用于enve
42KB
925 行
EString
[dependencies]
estring = "0.3"
使用类型注解简单解析字符串的方法。
此包最初是为enve设计的。
文档
更多详细信息,请参阅示例。
使用方法
基本
use estring::EString;
fn main() -> estring::Result<()> {
let res: i32 = EString::from("10").parse()?;
assert_eq!(res, 10);
Ok(())
}
如果您启用structs
功能,则可以使用预定义的结构体,例如SepVec
。
注意:您可以使用自定义类型作为注解!只需实现ParseFragment
即可!
use estring::{SepVec, EString};
type PlusVec<T> = SepVec<T, '+'>;
type MulVec<T> = SepVec<T, '*'>;
fn main() -> estring::Result<()> {
let res = EString::from("10+5*2+3")
.parse::<PlusVec<MulVec<f32>>>()?
.iter()
.map(|m| m.iter().product::<f32>())
.sum::<f32>();
assert_eq!(res, 23.0);
Ok(())
}
您还可以在启用aggs
功能的情况下使用预定义的聚合器。
use estring::{Aggregate, EString, Product, SepVec, Sum};
type PlusVec<T> = SepVec<T, '+'>;
type MulVec<T> = SepVec<T, '*'>;
fn main() -> estring::Result<()> {
let res = EString::from("10+5*2+3")
.parse::<Sum<PlusVec<Product<MulVec<f32>>>>>()?
.agg();
assert_eq!(res, 23.0);
Ok(())
}
联系我们
加入我们
许可证
MIT。请参阅LICENSE以查看全文。
贡献者
pleshevskiy (Dmitriy Pleshevskiy) – 创建者,维护者。