pub struct Git { /* private fields */ }
Expand description
Configuration for the VERGEN_GIT_*
instructions
Instructions
The following instructions can be generated:
Instruction | Default |
---|---|
cargo:rustc-env=VERGEN_GIT_BRANCH=feature/git2 | * |
cargo:rustc-env=VERGEN_GIT_COMMIT_COUNT=330 | |
cargo:rustc-env=VERGEN_GIT_COMMIT_DATE=2021-02-12 | |
cargo:rustc-env=VERGEN_GIT_COMMIT_TIME=01:54:15 | |
cargo:rustc-env=VERGEN_GIT_COMMIT_TIMESTAMP=2021-02-12T01:54:15.134750+00:00 | * |
cargo:rustc-env=VERGEN_GIT_SEMVER=v3.2.0-86-g95fc0f5d | * |
cargo:rustc-env=VERGEN_GIT_SEMVER_LIGHTWEIGHT=feature-test | |
cargo:rustc-env=VERGEN_GIT_SHA=95fc0f5d066710f16e0c23ce3239d6e040abca0d | * |
cargo:rustc-env=VERGEN_GIT_SHA_SHORT=95fc0f5 | |
cargo:rerun-if-changed=/Users/yoda/projects/rust-lang/vergen/.git/HEAD | * |
cargo:rerun-if-changed=/Users/yoda/projects/rust-lang/vergen/.git/refs/heads/feature/git2 | * |
- If the
branch
field is false, theVERGEN_GIT_BRANCH
instruction will not be generated. - If the
commit_count
field is false, theVERGEN_GIT_COMMIT_COUNT
instruction will not be generated. - If the
commit_timestamp
field is false, the date/time instructions will not be generated. - If the
rerun_on_head_changed
field is false, thecargo:rerun-if-changed
instructions will not be generated. - If the
semver
field is false, theVERGEN_GIT_SEMVER
instruction will not be generated. - If the
sha
field is fale, theVERGEN_GIT_SHA
instruction will not be generated. - NOTE - The SHA defaults to the
Normal
variant, but can be changed via thesha_kind
field. - NOTE - The SemVer defaults to the
Normal
variant, but can be changed via thesemver_kind
field. - NOTE - The SemVer is only useful if you have tags on your repository. If your repository has no tags, this will default to
CARGO_PKG_VERSION
. - NOTE - You can add a
-dirty
flag to the SemVer output via thesemver_dirty
field. - NOTE - The
Lightweight
variant will only differ from theNormal
variant if you use lightweight tags in your repository. - NOTE - By default, the date/time related instructions will use
UTC
. - NOTE - The date/time instruction output is determined by the
kind
field and can be any combination of the three. - NOTE - If the
rerun_on_head_chaged
instructions are enabled, cargowill re-run the build script when either
<gitpath>/HEADor the file that
<gitpath>/HEAD` points at changes.
Example
use vergen::{vergen, Config};
use vergen::{ShaKind, SemverKind};
let mut config = Config::default();
// Change the SHA output to the short variant
*config.git_mut().sha_kind_mut() = ShaKind::Short;
// Change the SEMVER output to the lightweight variant
*config.git_mut().semver_kind_mut() = SemverKind::Lightweight;
// Add a `-dirty` flag to the SEMVER output
*config.git_mut().semver_dirty_mut() = Some("-dirty");
// Generate the instructions
vergen(config)?;
Implementations
sourceimpl Git
impl Git
sourcepub fn enabled_mut(&mut self) -> &mut bool
pub fn enabled_mut(&mut self) -> &mut bool
Enable/Disable the git output
sourcepub fn base_dir_mut(&mut self) -> &mut Option<PathBuf>
pub fn base_dir_mut(&mut self) -> &mut Option<PathBuf>
Optional git base directory
sourcepub fn branch_mut(&mut self) -> &mut bool
pub fn branch_mut(&mut self) -> &mut bool
Enable/Disable the VERGEN_GIT_BRANCH
instruction
Enable/Disable the VERGEN_GIT_COMMIT_AUTHOR_NAME
, VERGEN_GIT_COMMIT_AUTHOR_EMAIL
sourcepub fn commit_count_mut(&mut self) -> &mut bool
pub fn commit_count_mut(&mut self) -> &mut bool
Enable/Disable the VERGEN_GIT_COMMIT_COUNT
sourcepub fn commit_message_mut(&mut self) -> &mut bool
pub fn commit_message_mut(&mut self) -> &mut bool
Enable/Disable the VERGEN_GIT_COMMIT_MESSAGE
sourcepub fn commit_timestamp_mut(&mut self) -> &mut bool
pub fn commit_timestamp_mut(&mut self) -> &mut bool
Enable/Disable the VERGEN_GIT_COMMIT_DATE
, VERGEN_GIT_COMMIT_TIME
, and VERGEN_GIT_COMMIT_TIMESTAMP
instructions
sourcepub fn commit_timestamp_timezone_mut(&mut self) -> &mut TimeZone
pub fn commit_timestamp_timezone_mut(&mut self) -> &mut TimeZone
The timezone to use for the date/time instructions.
sourcepub fn commit_timestamp_kind_mut(&mut self) -> &mut TimestampKind
pub fn commit_timestamp_kind_mut(&mut self) -> &mut TimestampKind
The kind of date/time instructions to output.
sourcepub fn rerun_on_head_change_mut(&mut self) -> &mut bool
pub fn rerun_on_head_change_mut(&mut self) -> &mut bool
Enable/Disable the cargo:rerun-if-changed
instructions
sourcepub fn semver_mut(&mut self) -> &mut bool
pub fn semver_mut(&mut self) -> &mut bool
Enable/Disable the VERGEN_GIT_SEMVER
instruction
sourcepub fn semver_kind_mut(&mut self) -> &mut SemverKind
pub fn semver_kind_mut(&mut self) -> &mut SemverKind
The kind of semver instruction to output.
sourcepub fn semver_dirty_mut(&mut self) -> &mut Option<&'static str>
pub fn semver_dirty_mut(&mut self) -> &mut Option<&'static str>
Enable/Disable the -dirty
flag on VERGEN_GIT_SEMVER*
output
sourcepub fn sha_kind_mut(&mut self) -> &mut ShaKind
pub fn sha_kind_mut(&mut self) -> &mut ShaKind
The kind of SHA instruction to output.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Git
impl Send for Git
impl Sync for Git
impl Unpin for Git
impl UnwindSafe for Git
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more