This commit is contained in:
Antonio Scandurra 2023-10-13 19:05:51 +02:00
parent 90f226193c
commit fedb787b4f
5 changed files with 239 additions and 29 deletions

View file

@ -4,24 +4,12 @@ pub trait Refineable: Clone {
type Refinement: Refineable<Refinement = Self::Refinement> + Default;
fn refine(&mut self, refinement: &Self::Refinement);
fn refined(mut self, refinement: &Self::Refinement) -> Self
where
Self: Sized,
{
self.refine(refinement);
self
}
fn from_refinement(refinement: &Self::Refinement) -> Self
where
Self: Default + Sized,
{
Self::default().refined(refinement)
}
fn refined(self, refinement: Self::Refinement) -> Self;
fn from_cascade(cascade: &Cascade<Self>) -> Self
where
Self: Default + Sized,
{
Self::default().refined(&cascade.merged())
Self::default().refined(cascade.merged())
}
}