[][src]Crate build_info

Begin by adding build-info as a [dependency] and build-info-build as a [build-dependency] to your Cargo.toml. Please make sure that both dependencies use the same version!

If it does not already exist, add a build.rs to your project's root, where you call build_info_build::build_script(). This will collect build information at compile time.

Then, either use the build_info! macro to add a function that returns version information at runtime:

build_info::build_info!(fn version);

or use build_info::format! to generate a string at compile time:

// sample output: "{sample v0.0.6 built with rustc version 1.43.1 8d69840ab92ea7f4d323420088dd8c9775f180cd at 2020-05-28 20:09:40.379213639Z}"
build_info::format!("{{{.crate_info.name} v{.crate_info.version} built with rustc version {.compiler.version} {.compiler.commit_id} at {.timestamp}}}")

You can also check out the sample project that shows both variants.

Features

The ´build-info` crate has the following features:

  • runtime (enabled by default): Enables the use of build_info::build_info! and provides the prerequisite types.
  • serde (disabled by default): Adds serde support to the objects returned by build_info::build_info!. Implies the runtime feature.
  • nested (disabled by default): Enables proc-macro-nested for build_info::format!, which lets it be nested inside another proc-macro invocation in some cases.

Macros

build_info

Call as build_info!(fn name) to create a function called name that returns a reference to a lazily created and cached BuildInfo object.

format

Generates a string at compile-time that includes build information.

Structs

BuildInfo

Information about the current build

CompilerInfo

rustc version and configuration

CrateInfo

Information about the current crate (i.e., the crate for which build information has been generated)

DateTime

ISO 8601 combined date and time with time zone.

GitInfo

Information about a git repository

Utc

The UTC time zone. This is the most efficient time zone when you don't need the local time. It is also used as an offset (which is also a dummy type).

Version

Represents a version number conforming to the semantic versioning scheme.

Enums

CompilerChannel

rustc distribution channel (some compiler features are only available on specific channels)

VersionControl

Support for different version control systems