Struct svgdom::ValueWriteOptions
source · pub struct ValueWriteOptions {
pub trim_hex_colors: bool,
pub remove_leading_zero: bool,
pub use_compact_path_notation: bool,
pub join_arc_to_flags: bool,
pub remove_duplicated_path_commands: bool,
pub use_implicit_lineto_commands: bool,
pub simplify_transform_matrices: bool,
pub list_separator: ListSeparator,
}
Expand description
Options for SVG types writing.
Fields
trim_hex_colors: bool
Use #RGB color notation when possible.
By default all colors written using #RRGGBB notation.
Examples
#ff0000
-> #f00
, #000000
-> #000
, #00aa00
-> #0a0
Default: disabled
remove_leading_zero: bool
use_compact_path_notation: bool
Use compact path notation.
SVG allow us to remove some symbols from path notation without breaking parsing.
Examples
M 10 -20 A 5.5 0.3 -4 1 1 0 -0.1
-> M10-20A5.5.3-4 1 1 0-.1
Default: disabled
join_arc_to_flags: bool
Join ArcTo flags.
Elliptical arc curve segment has flags parameters, which can have values of 0
or 1
.
Since we have fixed-width values, we can skip spaces between them.
Note: Sadly, but most of the viewers doesn’t support such notation, even though it’s valid according to the SVG spec.
Examples
A 5 5 30 1 1 10 10
-> A 5 5 30 1110 10
Default: disabled
remove_duplicated_path_commands: bool
Remove duplicated commands.
If a segment has the same type as a previous then we can skip command specifier.
Examples
M 10 10 L 20 20 L 30 30 L 40 40
-> M 10 10 L 20 20 30 30 40 40
Default: disabled
use_implicit_lineto_commands: bool
Use implicit LineTo commands.
‘If a MoveTo is followed by multiple pairs of coordinates, the subsequent pairs are treated as implicit LineTo commands.’
Examples
M 10 10 L 20 20 L 30 30
-> M 10 10 20 20 30 30
Default: disabled
simplify_transform_matrices: bool
Simplify transform matrices into short equivalent when possible.
If not set - all transform will be saved as ‘matrix’.
Examples
matrix(1 0 0 1 10 20) -> translate(10 20)
matrix(1 0 0 1 10 0) -> translate(10)
matrix(2 0 0 3 0 0) -> scale(2 3)
matrix(2 0 0 2 0 0) -> scale(2)
matrix(0 1 -1 0 0 0) -> rotate(-90)
Default: disabled
list_separator: ListSeparator
Set the separator type for list types.
Affects Points
, LengthList
, NumberList
and Transform
.
Default: ListSeparator::Space
Implementations
sourceimpl WriteOptions
impl WriteOptions
sourcepub fn write_separator(&self, out: &mut Vec<u8, Global>)
pub fn write_separator(&self, out: &mut Vec<u8, Global>)
Writes a selected separator to the output buffer.
Uses WriteOptions::list_separator
option.
Trait Implementations
sourceimpl Clone for WriteOptions
impl Clone for WriteOptions
sourcefn clone(&self) -> WriteOptions
fn clone(&self) -> WriteOptions
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more