pub trait Permutable<T: Clone> {
// Required methods
fn permutations<'async_trait>(
self,
k: usize,
) -> Pin<Box<dyn Future<Output = Iter<Permutations<IntoIter<T>>>> + Send + 'async_trait>>
where Self: 'async_trait;
fn permutations_with_replacement<'async_trait>(
self,
k: usize,
) -> Pin<Box<dyn Future<Output = Iter<MultiProduct<IntoIter<T>>>> + Send + 'async_trait>>
where Self: 'async_trait;
}