milsymbol-rs 0.3.2

A Rust wrapper for the milsymbol JavaScript library to generate military symbols (MIL-STD-2525 and APP-6).
use milsymbol_rs::{MilsymbolBuilder, MilsymbolOptions};

fn main() {
    // Generate a complex machine gun symbol with detailed options and modifiers
    // This example mirrors a real-world scenario with many text modifiers and data points.

    let mut ms = MilsymbolBuilder::new().build().unwrap();
    let options = MilsymbolOptions::new()
        .size(35.0)
        .quantity("200") // Equipment quantity
        .staff_comments("for reinforcements".to_uppercase())
        .additional_information("added support for JJ".to_uppercase())
        .direction((750.0 * 360.0) / 6400.0) // Convert mils to degrees
        .r#type("machine gun".to_uppercase())
        .dtg("30140000ZSEP97") // Date-Time Group
        .location("0900000.0E570306.0N")
        // Use the `extra` builder method to pass arbitrary JSON to milsymbol.js
        .extra("colorMode", serde_json::Value::String("Light".to_string()))
        .extra("infoFields", serde_json::Value::Bool(true));

    match ms.as_svg("130315003611010300000000000000", Some(&options)) {
        Ok(symbol) => {
            println!("--- Complex Milsymbol ---");
            println!("{}", symbol.svg);
        }
        Err(e) => {
            eprintln!("Failed to generate SVG: {}", e);
        }
    }
}