#unique #iterator #value #predicate #find #satisfying

已删除 unique-rust

一个Rust库crate,用于从一个满足谓词的迭代器中找到唯一的值

0.1.0 2020年3月5日

#47 in #predicate

MIT 许可证

4KB

unique

Rust

版权所有 (c) 2020 Ronnie Song

这是一个基于Rust的“unique”库crate,用于从一个满足谓词的迭代器中找到唯一的值。

使用方法

检查4是否在nums中是唯一的。

use unique::Unique;

let mut nums = vec![];
let num: fn(&&usize) -> bool = |&&n| n == 4;

nums.push(4);
assert_eq!(Some(&4), nums.iter().unique(even)); //true

运行示例

要运行示例程序,请输入以下命令

$ cargo run --example example
    Finished dev [unoptimized + debuginfo] target(s) in 0.04s
     Running `target/debug/examples/example`
None
None
Some(0)
Some(1)
None
None
Some(3)
None
Some("Ronnie")
Some("David")
Some("Ronnie")
None

一切顺利!它检查并找到了满足谓词的唯一值,没有问题,并成功按预期打印了结果。

测试

要测试库crate,请输入以下命令

$ cargo test
   Compiling unique v0.1.0 (/mnt/c/Users/ronsong/Desktop/Docs/Rust Programming/unique)
    Finished dev [unoptimized + debuginfo] target(s) in 1.71s
     Running target/debug/deps/test-e7e23989fe7c65fd

running 8 tests
test test_cases::empty ... ok
test test_cases::unique_even ... ok
test test_cases::unique_odd ... ok
test test_cases::nonunique_even_or_odd ... ok
test test_cases::unique_number ... ok
test test_cases::nonunique_number ... ok
test test_cases::unique_name ... ok
test test_cases::nonunique_name ... ok

test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

所有测试均通过,没有问题。

测试放在tests/test.rs文件中,该文件使用std assert_eq!()来测试该文件中unique()特质的实际结果和预期结果是否相等。

Github Action CI正在运行来自动测试。Rust

许可证

本程序受“MIT许可证”许可。请参阅本软件源分布中的LICENSE文件中的许可证条款。

无运行时依赖项