michie 0.2.13

An attribute macro that adds memoization to a function (sounds like Mickey)
Documentation
use cargo_toml::{Dependency, Manifest};
use semver::VersionReq;

#[test]
fn all_dev_deps_are_caret_constrained() {
    let manifest = Manifest::from_path("Cargo.toml").unwrap();
    let all_are_caret = manifest
        .dev_dependencies
        .into_iter()
        .map(|(_, dep)| {
            let version = match dep {
                Dependency::Simple(version) => version,
                Dependency::Detailed(detailed) => detailed.version.unwrap(),
            };
            let comparators = VersionReq::parse(&version).unwrap().comparators;
            assert_eq!(comparators.len(), 1);
            comparators[0].op
        })
        .all(|op| op == semver::Op::Caret);
    assert!(all_are_caret);
}