glifparser 2.0.1

A parser and writer for UFO `.glif` files
Documentation
use crate::PointData;
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub struct MFEKGuidelineInfo {
    pub fixed: bool,
    pub format: bool,
    pub right: bool,
}
#[derive(Clone, Copy, Debug, PartialEq, serde::Serialize, serde::Deserialize)]
pub enum MFEKPointData {
    Guideline(MFEKGuidelineInfo),
}

impl Default for MFEKPointData {
    fn default() -> Self {
        MFEKPointData::Guideline(MFEKGuidelineInfo::default())
    }
}

impl MFEKPointData {
    pub fn new_guideline_data(fixed: bool, format: bool, right: bool) -> Self {
        Self::Guideline(MFEKGuidelineInfo {
            fixed,
            format,
            right,
        })
    }
    pub fn as_guideline(&self) -> MFEKGuidelineInfo {
        #[allow(irrefutable_let_patterns)]
        if let MFEKPointData::Guideline(guide) = self {
            *guide
        } else {
            panic!("Tried to unwrap non-guideline as guideline")
        }
    }
}

impl PointData for MFEKPointData {}