//! Traits /// Overloaded `configure` method pub trait Configure { /// The properties of what's being configured type Properties; /// Configure some set of properties fn configure(&mut self, this: This, function: F) -> &mut Self where F: FnOnce(&mut Self::Properties) -> &mut Self::Properties; } /// Types that can be plotted pub trait Data { /// Convert the type into a double precision float fn f64(self) -> f64; } /// Overloaded `plot` method pub trait Plot { /// The properties associated to the plot type Properties; /// Plots some `data` with some `configuration` fn plot(&mut self, this: This, function: F) -> &mut Self where F: FnOnce(&mut Self::Properties) -> &mut Self::Properties; } /// Overloaded `set` method pub trait Set { /// Sets some property fn set(&mut self, value: T) -> &mut Self; }