blob: 52d22332b86a564f5f19bede8460fa10c3116fb4 [file] [log] [blame]
//! Traits
/// Overloaded `configure` method
pub trait Configure<This> {
/// The properties of what's being configured
type Properties;
/// Configure some set of properties
fn configure<F>(&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<This> {
/// The properties associated to the plot
type Properties;
/// Plots some `data` with some `configuration`
fn plot<F>(&mut self, this: This, function: F) -> &mut Self
where
F: FnOnce(&mut Self::Properties) -> &mut Self::Properties;
}
/// Overloaded `set` method
pub trait Set<T> {
/// Sets some property
fn set(&mut self, value: T) -> &mut Self;
}