cargo-stale 0.1.3

A fast, concurrent tool to check for outdated dependencies in your Rust Cargo.toml file
use crate::version::core::Version;

pub fn is_version_outdated(current_req: &str, latest_version: &str) -> bool {
    let current_req = current_req.trim();

    let current = match Version::parse(current_req) {
        Some(req) => req,
        None => return current_req != latest_version,
    };

    let latest = match Version::parse(latest_version) {
        Some(version) => version,
        None => return current_req != latest_version,
    };

    current < latest
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_is_version_outdated() {
        assert!(is_version_outdated("0.7.1", "0.7.2"));
        assert!(!is_version_outdated("0.7.1", "0.7.0"));
        assert!(!is_version_outdated("0.7.1", "0.5.92"));
        assert!(is_version_outdated("4.0.0-rc.3", "4.0.0"));
        assert!(!is_version_outdated("4.0.0", "4.0.0+build.123"));
    }
}