#[derive(Clone,Copy,Debug,Hash)] pub struct Ratio{ pub(crate)num:Num, pub(crate)den:Den, } //this trait is like a constructor for Ratio pub trait DeferredDiv{ type Output; fn deferred_div(self,rhs:Rhs)->Self::Output; }