Crate svg_definitions
source ·Expand description
Hello fellow Rustacians! Here is a crate with SVG Definitions. This was mostly created to serve as a backend crate for wasm_svg_graphics, but feel free to use it!
I am open to pull requests so please contribute!
Example
Creating a group with a triangle
use svg_definitions::prelude::*;
let triangle = SVGElem::new(Tag::Path)
.set(Attr::StrokeWidth, 1)
.set(Attr::Stroke, "#000")
.set(Attr::Fill, "transparent")
.set(Attr::D, PathData::new()
.move_to((0.0, 0.0))
.line_to((10.0, 0.0))
.line_to((0.0, 10.0))
.line_to((0.0, 0.0))
.close_path()
);
let group = SVGElem::new(Tag::G)
.append(triangle);
Getting a svg from a file
The feature “parsing” needs to be enabled for this
use svg_definitions::prelude::*;
let shape = SVGParseFile("/path/to/file.svg");
// ...
Getting a svg from text
The feature “parsing” needs to be enabled for this
use svg_definitions::prelude::*;
let rect = SVGParseText("<rect width=\"50px\" height=\"50\" fill=\"black\" />");
// ...
Modules
This module provides an easy and safe way to interact with attributes of Elements
This module provides an nicer and easier way to interact with SVG Path Definition Strings.
Prelude for this crate, this contains a lot of useful exports
Structs
Element provides a way to simulate DOM SVG elements