1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
// This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. use std::path::PathBuf; use crate::{ ImageRendering, ShapeRendering, TextRendering, }; /// Processing options. #[derive(Clone, Debug)] pub struct Options { /// SVG image path. /// /// Used to resolve relative image paths. pub path: Option<PathBuf>, /// Target DPI. /// /// Impact units conversion. pub dpi: f64, /// A default font family. pub font_family: String, /// A default font size. pub font_size: f64, /// A list of languages that will be used to resolve the `systemLanguage` /// conditional attribute. /// /// Format: en, en-US. pub languages: Vec<String>, /// Specifies the default shape rendering method. /// /// Will be used when an SVG element's `shape-rendering` property is set to `auto`. pub shape_rendering: ShapeRendering, /// Specifies the default text rendering method. /// /// Will be used when an SVG element's `text-rendering` property is set to `auto`. pub text_rendering: TextRendering, /// Specifies the default image rendering method. /// /// Will be used when an SVG element's `image-rendering` property is set to `auto`. pub image_rendering: ImageRendering, /// Keep named groups. /// /// If set to `true`, all non-empty groups with `id` attribute will not /// be removed. pub keep_named_groups: bool, } impl Default for Options { fn default() -> Options { Options { path: None, dpi: 96.0, // Default font is user-agent dependent so we can use whatever we like. font_family: "Times New Roman".to_owned(), font_size: 12.0, languages: vec!["en".to_string()], shape_rendering: ShapeRendering::default(), text_rendering: TextRendering::default(), image_rendering: ImageRendering::default(), keep_named_groups: false, } } }