Struct svgcleaner::WriteOptions[][src]

pub struct WriteOptions {
    pub indent: Indent,
    pub attributes_indent: Indent,
    pub use_single_quote: bool,
    pub trim_hex_colors: bool,
    pub write_hidden_attributes: 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,
    pub attributes_order: AttributesOrder,
}

Options that defines SVG writing.

Fields

Set XML nodes indention.

Examples

Indent::None

Before:

<svg>
    <rect fill="red"/>
</svg>

After:

<svg><rect fill="red"/></svg>

Default: 4 spaces

Set XML attributes indention.

Examples

Indent::Spaces(2)

Before:

<svg>
    <rect fill="red" stroke="black"/>
</svg>

After:

<svg>
    <rect
      fill="red"
      stroke="black"/>
</svg>

Default: None

Use single quote marks instead of double quote.

Examples

Before:

<rect fill="red"/>

After:

<rect fill='red'/>

Default: disabled

Use #RGB color notation when possible.

By default all colors written using #RRGGBB notation.

Examples

#ff0000 -> #f00, #000000 -> #000, #00aa00 -> #0a0

Default: disabled

Write hidden attributes.

libsvgdom support invisible attributes, which can be dumped to output using this option.

See Attribute documentation.

Default: disabled

Remove leading zero from numbers.

Examples

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

Default: disabled

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 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 through it's valid by SVG spec.

Examples

A 5 5 30 1 1 10 10 -> A 5 5 30 1110 10

Default: disabled

Remove duplicated commands.

If the segment has the same type as previous - 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.

'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 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

Set the separator type for NumberList and LengthList.

Default: ListSeparator::Space

Set attributes order.

Default: AttributesOrder::Alphabetical

Trait Implementations

impl Default for WriteOptions
[src]

Returns the "default value" for a type. Read more

Auto Trait Implementations