У меня есть Stream
значений, и я хочу filter
по некоторому предикату. Но что, если сам предикат является async
функцией?
#[async_std::test]
async fn test() {
use async_std::prelude::*;
use async_std::stream;
let mut s = stream::from_iter(vec![1u8, 2, 3, 4]);
let mut s = s.filter(|x| check_if_in_db(x).await); // error: this is not `async`
assert_eq!(s.next().await, Some(1));
assert_eq!(s.next().await, Some(2));
assert_eq!(s.next().await, None);
}
async fn check_if_in_db(x: &u8) -> bool {
x <= &2
}
Я борюсь с тем, чтобы предикат filter
возвращал bool
одновременно с async
.