[][src]Macro check_latest::max_version

macro_rules! max_version {
    () => { ... };
    (crate_name = $crate_name:expr, version = $version:expr, user_agent = $user_agent:expr $(,)?) => { ... };
    (crate_name = $crate_name:expr, user_agent = $user_agent:expr, version = $version:expr $(,)?) => { ... };
    (version = $version:expr, crate_name = $crate_name:expr, user_agent = $user_agent:expr $(,)?) => { ... };
    (version = $version:expr, user_agent = $user_agent:expr, crate_name = $crate_name:expr $(,)?) => { ... };
    (user_agent = $user_agent:expr, crate_name = $crate_name:expr, version = $version:expr $(,)?) => { ... };
    (user_agent = $user_agent:expr, version = $version:expr, crate_name = $crate_name:expr $(,)?) => { ... };
    (version = $version:expr, user_agent = $user_agent:expr $(,)?) => { ... };
    (user_agent = $user_agent:expr, version = $version:expr $(,)?) => { ... };
    (crate_name = $crate_name:expr, user_agent = $user_agent:expr $(,)?) => { ... };
    (user_agent = $user_agent:expr, crate_name = $crate_name:expr $(,)?) => { ... };
    (crate_name = $crate_name:expr, version = $version:expr $(,)?) => { ... };
    (version = $version:expr, crate_name = $crate_name:expr $(,)?) => { ... };
    (crate_name = $crate_name:expr $(,)?) => { ... };
    (version = $version:expr $(,)?) => { ... };
    (user_agent = $user_agent:expr $(,)?) => { ... };
}
Deprecated since 0.4

Gets the max version of a crate.

Returns

  • Ok(Some(version)) if there is a greater version
  • Ok(None) if there is no greater version
  • Err(e) if failure to search for greater version

Usage

max_version!() will predict the crate_name, current_crate_version, and user_agent. crate_name will default to package name in your Cargo.toml file. current_crate_version will default to the package version in your Cargo.toml file. user_agent will default to the name of your crate as defined in Cargo.toml followed by a / and the version of your package as defined in your Cargo.toml file (e.g. my-crate-name/1.0.0).

If you do not want these defaults to be used, you can set your own values. See the examples below.

Examples

Use Defaults

use check_latest::max_version;

if let Ok(Some(version)) = max_version!() {
    println!("Go get version {}!", version);
}

Set Crate Name

use check_latest::max_version;

let name = "my-renamed-crate";

if let Ok(Some(version)) = max_version!(crate_name = name) {
    println!("Go get version {}!", version);
}

Set Crate Version to Compare

use check_latest::max_version;

let current_version = "1.2.3";


if let Ok(Some(version)) = max_version!(version = current_version) {
    println!("Go get version {}!", version);
}

Set User Agent

use check_latest::max_version;

let user_agent = "My extra detailed user agent";

if let Ok(Some(version)) = max_version!(user_agent = user_agent) {
    println!("Go get version {}!", version);
}

Set All 3

use check_latest::max_version;

let crate_name = "my-renamed-crate";
let current_version = "1.2.3";
let user_agent = "My extra detailed user agent";

let max_version = max_version!(
    // These can be shuffled BTW
    crate_name = crate_name,
    version = current_version,
    user_agent = user_agent,
);

if let Ok(Some(version)) = max_version {
    println!("Go get version {}!", version);
}