pub struct WriteOptions {
Show 13 fields 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,
}
Expand description

Options that defines SVG writing.

Fields§

§indent: Indent

Set XML nodes indention.

Examples

Indent::None

Before:

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

After:

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

Default: 4 spaces

§attributes_indent: Indent

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: bool

Use single quote marks instead of double quote.

Examples

Before:

<rect fill="red"/>

After:

<rect fill='red'/>

Default: disabled

§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

§write_hidden_attributes: bool

Write hidden attributes.

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

See Attribute documentation.

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 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_path_commands: bool

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: 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 NumberList and LengthList.

Default: ListSeparator::Space

§attributes_order: AttributesOrder

Set attributes order.

Default: AttributesOrder::Alphabetical

Trait Implementations§

source§

impl Default for WriteOptions

source§

fn default() -> WriteOptions

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

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

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.