gerber_parser 0.4.0

A gerber parser for the gerber-types crate
Documentation
use gerber_parser::parse;
use gerber_parser::util::{gerber_doc_to_str, gerber_to_reader};

/// These tests are similar to those in reference_file_tests.rs, but the files below are
/// not generated by Ucamco and are not general reference files

#[test]
fn dicechip_outline_to_rust_and_back() {
    let gbr_string = "%FSLAX23Y23*%
%MOMM*%
%ADD801C,0.018*%
%ADD802C,0.01*%
%ADD803R,0.01X0.1*%
G04 Template gerber file by Nemo Andrea*
G04 Define the primive apertures*
G04 Chip outline*
D801*
G75*
G01*
X4000Y1500D02*
X4000Y-1500D01*
X200Y-1500D01*
X0Y-750D01*
X-200Y-1500D01*
X-4000Y-1500D01*
X-4000Y1500D01*
X-200Y1500D01*
X0Y750D01*
X200Y1500D01*
X4000Y1500D01*
D802*
X0Y0D03*
X0Y300D03*
X0Y-300D03*
X0Y600D03*
X0Y-600D03*
D803*
X0Y150D03*
X0Y450D03*
X0Y-150D03*
X0Y-450D03*
X0Y-450D03*
X0Y-720D03*
X0Y720D03*
M02*
";
    let reader = gerber_to_reader(gbr_string);

    let result = parse(reader);
    assert!(result.is_ok());

    let doc = result.unwrap();
    doc.errors().iter().for_each(|x| println!("Error: {}", x));

    assert_eq!(gbr_string, gerber_doc_to_str(doc))
}