[][src]Struct svgdom::ValueWriteOptions

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,
}

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

Methods

impl WriteOptions[src]

pub fn write_separator(&self, out: &mut Vec<u8>)[src]

Writes a selected separator to the output buffer.

Uses WriteOptions::list_separator option.

Trait Implementations

impl Debug for WriteOptions[src]

impl Clone for WriteOptions[src]

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Default for WriteOptions[src]

impl Copy for WriteOptions[src]

impl PartialEq<WriteOptions> for WriteOptions[src]

Auto Trait Implementations

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]