refineable.rs

 1pub use derive_refineable::Refineable;
 2
 3pub trait Refineable {
 4    type Refinement: Default;
 5
 6    fn refine(&mut self, refinement: &Self::Refinement);
 7    fn refined(mut self, refinement: &Self::Refinement) -> Self
 8    where
 9        Self: Sized,
10    {
11        self.refine(refinement);
12        self
13    }
14}