threemf2 0.1.2

3MF (3D Manufacturing Format) file format support
Documentation
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ImageFormat {
    Png,
    Jpeg,
    Unknown,
}

impl ImageFormat {
    pub fn from_ext(ext: &str) -> Self {
        match ext.to_lowercase().as_ref() {
            "png" => Self::Png,
            "jpg" | "jpeg" => Self::Jpeg,
            _ => Self::Unknown,
        }
    }
}

#[derive(Debug, Clone, PartialEq)]
pub struct ThumbnailHandle {
    pub data: Vec<u8>,
    pub format: ImageFormat,
}

#[cfg(test)]
mod tests {
    use crate::io::thumbnail_handle::ImageFormat;

    #[test]
    fn from_ext_test() {
        let png = ImageFormat::from_ext("PNG");
        let jpg = ImageFormat::from_ext("JPG");
        let jpeg = ImageFormat::from_ext("JPEG");
        let unknown = ImageFormat::from_ext("tiff");

        assert_eq!(png, ImageFormat::Png);
        assert_eq!(jpg, ImageFormat::Jpeg);
        assert_eq!(jpeg, ImageFormat::Jpeg);
        assert_eq!(unknown, ImageFormat::Unknown);
    }
}