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

Remove leading zero from numbers.

Examples

  • 0.1 -> .1
  • -0.1 -> -.1

Default: disabled

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

Writes a selected separator to the output buffer.

Uses WriteOptions::list_separator option.

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.