glifparser 2.0.1

A parser and writer for UFO `.glif` files
Documentation
use test_log;

use glifparser::outline::{FromKurbo as _, IntoKurbo as _, RoundToInt as _, Outline};
use glifparser::Glif;
use glifparser;
use kurbo::BezPath;
use kurbo::Shape as _;

#[test_log::test]
fn test_kurbo_from() {
    log::info!("logging OK");
    let mut path: BezPath = kurbo::Circle{center:kurbo::Point::new(0., 0.), radius:50.0}.to_path(1.0);
    path.extend(kurbo::Rect::new(0., 0., 100., 100.).to_path(1.0));
    /*let mut path2 = BezPath::new();
    path2.move_to((30., 30.));
    path2.curve_to((-35., 80.), (-150., -50.), (-100., -100.));
    path.extend(&path2);*/
    let outline = Outline::<()>::from_kurbo(&path);
    let len1: usize = outline.first().map(|c|c.len()).unwrap_or(0);
    //eprintln!("{:?}", &outline);
    let kpath = outline.clone().into_kurbo().unwrap();
    let outline2 = Outline::<()>::from_kurbo(&kpath);
    let len2: usize = outline2.first().map(|c|c.len()).unwrap_or(0);
    assert_eq!(outline.clone().round_to_int(), outline2.clone().round_to_int());
    let mut glif = Glif::new();
    eprintln!("{:#?}", &path);
    eprintln!("{:#?}", &kpath);
    eprintln!("{:?}", &outline);
    eprintln!("{:?}", &outline2);
    glif.outline = Some(outline.clone());
    println!("{}", glifparser::write(&glif).unwrap());
    glif.outline = Some(outline2.clone());
    println!("{}", glifparser::write(&glif).unwrap());
    assert_eq!(len1, len2);
    assert_eq!(&outline, &outline2);
}