1 个不稳定版本
0.1.0 | 2020年5月22日 |
---|
#7 in #streams
每月 23 次下载
11KB
214 代码行
streams-rs
streams-rs 提供类似 OCaml 的流和宏,用于匹配这些流。
为什么?
当需要读取文件的行、使用词法分析器解析某些内容等时,流非常有用。
示例
extern crate streams_rs;
use streams_rs::fn_stream::FnStream;
use streams_rs::*;
fn main() {
let mut count = 0;
let get = || {
count += 1;
StreamResult::Ok(count - 1)
};
let mut stream = FnStream::new(get);
let _ = smatch!(match (stream) {
[0=>] => { // if not 0 then we do not match
println!("Zero!");
}
});
let _ = smatch!(match (stream) {
[1=>] => { // if not 1 then we do not match
println!("One!");
}
});
for _ in 0..10 {
let _ = smatch!(match (stream) {
[a=>b=>] => { // get two values a and b from stream
println!("a: {} b: {}",a,b);
}
});
}
}