native-dialog 0.9.6

A library to display dialogs. Supports GNU/Linux, BSD Unix, macOS and Windows.
Documentation
use std::cmp::Ordering;

use versions::SemVer;

#[derive(Debug)]
pub struct Version(SemVer);

impl Version {
    pub fn new(parts: (u32, u32, u32)) -> Self {
        Self(SemVer {
            major: parts.0,
            minor: parts.1,
            patch: parts.2,
            pre_rel: None,
            meta: None,
        })
    }

    pub fn parse(s: &str) -> Option<Self> {
        let semver = SemVer::new(s.trim_ascii())?;
        Some(Self(semver))
    }
}

impl PartialEq<(u32, u32, u32)> for Version {
    fn eq(&self, parts: &(u32, u32, u32)) -> bool {
        let other = Version::new(*parts);
        self.0 == other.0
    }
}

impl PartialOrd<(u32, u32, u32)> for Version {
    fn partial_cmp(&self, parts: &(u32, u32, u32)) -> Option<Ordering> {
        let other = Version::new(*parts);
        self.0.partial_cmp(&other.0)
    }
}