use crate::agnostic::{Clump, Entity, FlatClod, phantoms::PhantomDirectory};
pub trait Clod<C: Clump, D> {
fn ent_amt(&self) -> usize;
fn nth_ent(&self, n: usize) -> &impl Entity<C, D>;
fn a_sub_nth_ents(&self, a: impl Iterator<Item = usize>) -> Vec<&impl Entity<C, D>>;
}
impl<C: Clump, M: FlatClod<C>> Clod<C, PhantomDirectory> for M {
fn ent_amt(&self) -> usize {
self.clump_amt()
}
#[allow(refining_impl_trait)]
fn nth_ent(&self, n: usize) -> &C {
self.nth_clump(n)
}
#[allow(refining_impl_trait)]
fn a_sub_nth_ents(&self, a: impl Iterator<Item = usize>) -> Vec<&C> {
self.a_sub_nth_clumps(a)
}
}