|  | /// The color type that is used by all the backend | 
|  | #[derive(Clone, Copy)] | 
|  | pub struct BackendColor { | 
|  | pub alpha: f64, | 
|  | pub rgb: (u8, u8, u8), | 
|  | } | 
|  |  | 
|  | impl BackendColor { | 
|  | #[inline(always)] | 
|  | pub fn mix(&self, alpha: f64) -> Self { | 
|  | Self { | 
|  | alpha: self.alpha * alpha, | 
|  | rgb: self.rgb, | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | /// The style data for the backend drawing API | 
|  | pub trait BackendStyle { | 
|  | /// Get the color of current style | 
|  | fn color(&self) -> BackendColor; | 
|  |  | 
|  | /// Get the stroke width of current style | 
|  | fn stroke_width(&self) -> u32 { | 
|  | 1 | 
|  | } | 
|  | } | 
|  |  | 
|  | impl BackendStyle for BackendColor { | 
|  | fn color(&self) -> BackendColor { | 
|  | *self | 
|  | } | 
|  | } |