recurve_svg/xml/
document.rs1use simple_vector2::Vector2;
2use crate::xml::Element;
3
4pub struct Document {
5 pub elements: Vec<Element>,
6 pub reference_size: Vector2<f32>,
7}
8
9impl Document {
10 pub fn new(elements: Vec<Element>, reference_size: Vector2<f32>) -> Document {
11 Self {
12 elements,
13 reference_size,
14 }
15 }
16
17 pub fn as_xml(&self) -> Element {
18 let mut document = Element::builder()
19 .name("svg")
20 .with_attribute(("version", "1.1"))
21 .with_attribute(("width", self.reference_size.x))
22 .with_attribute(("height", self.reference_size.y))
23 .with_attribute(("xmlns", "http://www.w3.org/2000/svg"))
24 .build();
25
26 if !self.elements.is_empty() {
27 document.children = Some(self.elements.clone());
28 }
29
30 document
31 }
32}