Я хочу определить функцию every
, которая принимает итератор и, хотя это не None
, гарантирует, что все значения равны true
.
Примеры приложений:
every([true, true, true].into_iter()) == true
every([true, false, true].into_iter()) == false
Мне не удалось заставить его работать только с Vec
, не говоря уже о Iterator
.Я попробовал следующее и несколько вариантов, но нигде не получил.
use std::ops;
fn every<T>(v: Vec<T>) -> bool
where
T: ops::Not,
{
for item in v {
match !item {
T::No => return false,
}
}
true
}
Этот код получает ошибку:
error[E0599]: no associated item named `No` found for type `T` in the current scope
--> src/lib.rs:9:13
|
9 | T::No => return false,
| ^^^^^ associated item not found in `T`