1 个不稳定版本

0.1.0 2022年6月23日

#2007Rust 模式

MIT 许可证

10KB
174

Contains

Contains 包含 2 个 trait:Container 和 In。

Container

Container trait 可以用于抽象可以包含项的类型:Vec<T>&[T]HashMap<T>Option<T> 等。

use contains::Container;

let vec = vec![1, 2, 3, 4, 5];
let range = 0..5;
let option = Some(3);

let containers: &[&dyn Container<usize>] = &[&vec, &range, &option];
for container in containers {
  assert!(container.does_contain(&3));
}

In

In trait 是 Container trait 的逆,表示一个在容器中的类型。主要通过提供 is_in 方法来反转调用顺序。

use contains::{Container, In};

let range = 0..5;
assert!(range.does_contain(&3));    // using does_contain
assert!(3.is_in(&range));           // using in

lib.rs:

Contains

Contains 包含 2 个 trait:Container 和 In。

Container

Container trait 可以用于抽象可以包含项的类型:Vec<T>&[T]HashMap<T>Option<T> 等。

use contains::Container;

let vec = vec![1, 2, 3, 4, 5];
let range = 0..5;
let option = Some(3);

let containers: &[&dyn Container<usize>] = &[&vec, &range, &option];
for container in containers {
  assert!(container.does_contain(&3));
}

In

In trait 是 Container trait 的逆,表示一个在容器中的类型。主要通过提供 is_in 方法来反转调用顺序。

use contains::{Container, In};

let range = 0..5;
assert!(range.does_contain(&3));    // using does_contain
assert!(3.is_in(&range));           // using in

无运行时依赖