diff options
Diffstat (limited to 'src/geom')
| -rw-r--r-- | src/geom/paint.rs | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/geom/paint.rs b/src/geom/paint.rs index d906561c..f8638656 100644 --- a/src/geom/paint.rs +++ b/src/geom/paint.rs @@ -1,6 +1,8 @@ use std::fmt::Display; use std::str::FromStr; +use syntect::highlighting::Color as SynColor; + use super::*; /// How a fill or stroke should be painted. @@ -34,9 +36,12 @@ impl Debug for Color { } } -impl From<RgbaColor> for Color { - fn from(rgba: RgbaColor) -> Self { - Self::Rgba(rgba) +impl<T> From<T> for Color +where + T: Into<RgbaColor>, +{ + fn from(rgba: T) -> Self { + Self::Rgba(rgba.into()) } } @@ -114,6 +119,12 @@ impl FromStr for RgbaColor { } } +impl From<SynColor> for RgbaColor { + fn from(color: SynColor) -> Self { + Self::new(color.r, color.b, color.g, color.a) + } +} + impl Debug for RgbaColor { fn fmt(&self, f: &mut Formatter) -> fmt::Result { if f.alternate() { |
