[][src]Macro check_latest::newest_version

macro_rules! newest_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

Makes it easier to run get_newest_version.

Please note that the newest version is not always the maximum version. A patch may have been released for an old major version that is still being maintained, for example.

newest_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::newest_version;

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

Set Crate Name

use check_latest::newest_version;

let name = "my-renamed-crate";

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

Set Crate Version to Compare

use check_latest::newest_version;

let current_version = "1.2.3";


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

Set User Agent

use check_latest::newest_version;

let user_agent = "My extra detailed user agent";

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

Set All 3

use check_latest::newest_version;

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

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

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