make labels optional
2 files changed, 21 insertions(+), 10 deletions(-)

M src/main.rs
M src/renderer.rs
M src/main.rs +7 -1
@@ 21,6 21,12 @@ fn main() {
         std::process::exit(1);
     }
 
+    // check if label is enabled
+    let mut is_label = false;
+    if args.len() > 2 && args[2] == "--label" {
+        is_label = true;
+    }
+
     // see if file exists
     let filename = &args[1];
     if !std::path::Path::new(filename).exists() {

          
@@ 47,7 53,7 @@ fn main() {
     println!("{:?}", values);
 
     // render values to svg
-    let svg = render(values).expect("Failed to render");
+    let svg = render(values, is_label).expect("Failed to render");
     println!("{}", svg);
 
     // write svg to file

          
M src/renderer.rs +14 -9
@@ 141,7 141,7 @@ impl Render for SvgLabel {
         // extract point from option
         let point = match self.position {
             Some(point) => point,
-            None => Point { x: 0.0, y: 0.0 },
+            None => return "".to_string(),
         };
 
         format!(

          
@@ 368,14 368,7 @@ impl Render for SvgCircle {
     }
 }
 
-pub fn render(values: Vec<Value>) -> Result<String, String> {
-    let mut elements: Vec<Box<dyn Render>> = Vec::new();
-    for value in values {
-        let svg_elements: Vec<Box<dyn Render>> = value.to_svg();
-        elements.extend(svg_elements);
-    }
-    let mut svg = Svg { elements };
-
+fn label(svg: &mut Svg) {
     // mark pixels on bitmap
     let (_, max_point): (Point, Point) = svg.get_viewbox();
     let scale = 10.0;

          
@@ 445,6 438,18 @@ pub fn render(values: Vec<Value>) -> Res
             );
         }
     }
+}
+
+pub fn render(values: Vec<Value>, is_label: bool) -> Result<String, String> {
+    let mut elements: Vec<Box<dyn Render>> = Vec::new();
+    for value in values {
+        let svg_elements: Vec<Box<dyn Render>> = value.to_svg();
+        elements.extend(svg_elements);
+    }
+    let mut svg = Svg { elements };
+    if is_label {
+        label(&mut svg);
+    }
 
     Ok(svg.render())
 }