use crate::IntoIterator;
use crate::Iterator;
pub trait FromIterator<A>: Sized {
async fn from_iter<T: IntoIterator<Item = A>>(iter: T) -> Self;
}
#[cfg(any(feature = "alloc", feature = "std"))]
impl<T> FromIterator<T> for std::vec::Vec<T> {
async fn from_iter<I: IntoIterator<Item = T>>(iter: I) -> std::vec::Vec<T> {
let mut iter = iter.into_iter().await;
let mut output = std::vec::Vec::with_capacity(iter.size_hint().1.unwrap_or_default());
while let Some(item) = iter.next().await {
output.push(item);
}
output
}
}