glifparser 2.0.1

A parser and writer for UFO `.glif` files
Documentation
use integer_or_float::IntegerOrFloat;
use glifparser;

#[test]
fn test_note() {
    let glifxml = r#"<?xml version="1.0" encoding="UTF-8"?>
<glyph name="guidelines" format="2">
  <advance width="0" />
  <unicode hex="00" />
  <guideline x="5" y="9.2432" angle="180" name="gl" color="1,0,0,1" />
  <guideline x="50.0" y="9" angle="90.0" name="gl2" color="1,0,0,1" />
  <outline />
  <!-- <MFEK></MFEK> -->
</glyph>"#;
    let glif: glifparser::Glif<()> = glifparser::glif::read(glifxml).unwrap();
    assert_eq!(glif.guidelines.len(), 2);
    assert_eq!(glif.guidelines[0].name, Some(String::from("gl")));
    assert_eq!(glif.guidelines[0].at, glifparser::GuidelinePoint{x: 5., y: 9.2432});
    assert!(glif.guidelines[1].angle == IntegerOrFloat::Float(90.0) || glif.guidelines[1].angle == IntegerOrFloat::Integer(90));
    let newxml = glifparser::glif::write(&glif).unwrap();
    let newglif: glifparser::Glif<()> = glifparser::glif::read(&newxml).unwrap();
    assert_eq!(newglif.guidelines.len(), 2);
    assert_eq!(newglif.guidelines[0].name, Some(String::from("gl")));
    assert_eq!(newglif.guidelines[0].at, glifparser::GuidelinePoint{x: 5., y: 9.2432});
    assert!(newglif.guidelines[1].angle == IntegerOrFloat::Float(90.0) || newglif.guidelines[1].angle == IntegerOrFloat::Integer(90));
}