Struct re_build_info::CrateVersion
source · pub struct CrateVersion {
pub major: u8,
pub minor: u8,
pub patch: u8,
pub meta: Option<Meta>,
}Expand description
The version of a Rerun crate.
Sub-set of semver supporting major.minor.patch-{alpha,rc}.N+dev.
The string value of build metadata is not preserved.
Examples: 1.2.3, 1.2.3-alpha.4, 1.2.3-alpha.1+dev.
-alpha.N+dev versions are used for local or CI builds.
-alpha.N versions are used for weekly releases.
-rc.N versions are used for release candidates as we’re preparing for a full release.
The version numbers (N) aren’t allowed to be very large (current max: 63).
This limited subset is chosen so that we can encode the version in 32 bits
in our .rrd files and on the wire.
Here is the current binary format:
major minor patch meta
00000000 00000000 00000000 00NNNNNN
▲▲▲ ▲
││└─┬──┘
││ └─ N
│└─ rc/dev
└─ alpha
The valid bit patterns for meta are:
10NNNNNN->-alpha.N11NNNNNN->-alpha.N+dev01NNNNNN->-rc.N00000000-> none of the above
Fields§
§major: u8§minor: u8§patch: u8§meta: Option<Meta>Implementations§
source§impl CrateVersion
impl CrateVersion
sourcepub fn try_parse_from_build_info_string(
s: impl AsRef<str>
) -> Result<CrateVersion, String>
pub fn try_parse_from_build_info_string( s: impl AsRef<str> ) -> Result<CrateVersion, String>
Attempts to parse a CrateVersion from a BuildInfo’s string representation (rerun --version).
Refer to BuildInfo as std::fmt::Display>::fmt to see what the string representation is
expected to look like. Roughly:
<name> <semver> [<rust_info>] <target> <branch> <commit> <build_date>source§impl CrateVersion
impl CrateVersion
source§impl CrateVersion
impl CrateVersion
pub const fn new(major: u8, minor: u8, patch: u8) -> Self
sourcepub fn is_release(&self) -> bool
pub fn is_release(&self) -> bool
True is this version has no metadata at all (rc, dev, alpha, etc).
I.e. it’s an actual, final release.
sourcepub fn is_dev(&self) -> bool
pub fn is_dev(&self) -> bool
Whether or not this build has a +dev suffix.
This is used to identify builds which are not explicit releases, such as local builds and CI builds for every commit.
sourcepub fn is_alpha(&self) -> bool
pub fn is_alpha(&self) -> bool
Whether or not this is an alpha version (-alpha.N or -alpha.N+dev).
sourcepub fn from_bytes([major, minor, patch, meta]: [u8; 4]) -> Self
pub fn from_bytes([major, minor, patch, meta]: [u8; 4]) -> Self
From a compact 32-bit representation crated with Self::to_bytes.
sourcepub fn to_bytes(self) -> [u8; 4]
pub fn to_bytes(self) -> [u8; 4]
A compact 32-bit representation. See also Self::from_bytes.
pub fn is_compatible_with(self, other: CrateVersion) -> bool
sourcepub const fn parse(version_string: &str) -> Self
pub const fn parse(version_string: &str) -> Self
Parse a version string according to our subset of semver.
See CrateVersion for more information.
Trait Implementations§
source§impl Clone for CrateVersion
impl Clone for CrateVersion
source§fn clone(&self) -> CrateVersion
fn clone(&self) -> CrateVersion
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for CrateVersion
impl Debug for CrateVersion
source§impl<'de> Deserialize<'de> for CrateVersion
impl<'de> Deserialize<'de> for CrateVersion
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl Display for CrateVersion
impl Display for CrateVersion
source§impl PartialEq for CrateVersion
impl PartialEq for CrateVersion
source§fn eq(&self, other: &CrateVersion) -> bool
fn eq(&self, other: &CrateVersion) -> bool
self and other values to be equal, and is used
by ==.