[−][src]Function build_id::get
pub fn get() -> Uuid
Returns a Uuid uniquely representing the build of the current binary.
This is intended to be used to check that different processes are indeed invocations of identically laid out binaries.
As such:
- It is guaranteed to be identical within multiple invocations of the same binary.
- It is guaranteed to be different across binaries with different code or data segments or layout.
- Equality is unspecified if the binaries have identical code and data segments and layout but differ immaterially (e.g. if a timestamp is included in the binary at compile time).
Examples
let local_build_id = build_id::get(); if local_build_id == remote_build_id { println!("We're running the same binary as remote!"); } else { println!("We're running a different binary to remote"); }
Note
This looks first for linker-inserted build ID / binary UUIDs (i.e.
.note.gnu.build-id
on Linux; LC_UUID
in Mach-O; etc), falling back to
hashing the whole binary.