tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

svg.rs (2097B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
      4 
      5 //! Computed types for SVG properties.
      6 
      7 use crate::values::computed::color::Color;
      8 use crate::values::computed::url::ComputedUrl;
      9 use crate::values::computed::{LengthPercentage, NonNegativeLengthPercentage, Opacity};
     10 use crate::values::generics::svg as generic;
     11 use crate::Zero;
     12 
     13 pub use crate::values::specified::{DProperty, MozContextProperties, SVGPaintOrder, VectorEffect};
     14 
     15 /// Computed SVG Paint value
     16 pub type SVGPaint = generic::GenericSVGPaint<Color, ComputedUrl>;
     17 
     18 /// Computed SVG Paint Kind value
     19 pub type SVGPaintKind = generic::GenericSVGPaintKind<Color, ComputedUrl>;
     20 
     21 impl SVGPaint {
     22    /// Opaque black color
     23    pub const BLACK: Self = Self {
     24        kind: generic::SVGPaintKind::Color(Color::BLACK),
     25        fallback: generic::SVGPaintFallback::Unset,
     26    };
     27 }
     28 
     29 /// <length> | <percentage> | <number> | context-value
     30 pub type SVGLength = generic::GenericSVGLength<LengthPercentage>;
     31 
     32 impl SVGLength {
     33    /// `0px`
     34    pub fn zero() -> Self {
     35        generic::SVGLength::LengthPercentage(LengthPercentage::zero())
     36    }
     37 }
     38 
     39 /// An non-negative wrapper of SVGLength.
     40 pub type SVGWidth = generic::GenericSVGLength<NonNegativeLengthPercentage>;
     41 
     42 impl SVGWidth {
     43    /// `1px`.
     44    pub fn one() -> Self {
     45        use crate::values::generics::NonNegative;
     46        generic::SVGLength::LengthPercentage(NonNegative(LengthPercentage::one()))
     47    }
     48 }
     49 
     50 /// [ <length> | <percentage> | <number> ]# | context-value
     51 pub type SVGStrokeDashArray = generic::GenericSVGStrokeDashArray<NonNegativeLengthPercentage>;
     52 
     53 impl Default for SVGStrokeDashArray {
     54    fn default() -> Self {
     55        generic::SVGStrokeDashArray::Values(Default::default())
     56    }
     57 }
     58 
     59 /// <opacity-value> | context-fill-opacity | context-stroke-opacity
     60 pub type SVGOpacity = generic::GenericSVGOpacity<Opacity>;
     61 
     62 impl Default for SVGOpacity {
     63    fn default() -> Self {
     64        generic::SVGOpacity::Opacity(1.)
     65    }
     66 }