Expand description
Version of a firmware.
The version must be encoded in certain places. To make the API somewhat useable (but admittedly also a bit weirder), we use:
- 10 bits for major
- 16 bits for minor
- 6 bits for patch
which gives offsets of 22 bits for major and 6 bits for minor in the u32.
Further, the minor version is at times interpreted as a “calver” encoding days since 2020-01-01. This is optional to use, “semver” works as well.
Fields§
§major: u16
§minor: u16
§patch: u16
Implementations§
source§impl Version
impl Version
sourcepub fn minor_as_date(&self) -> NaiveDate
pub fn minor_as_date(&self) -> NaiveDate
The minor version component in its interpretation as days since 2020-01-01
pub fn timestamp_micros(&self) -> u64
Trait Implementations§
source§impl<'de> Deserialize<'de> for Version
impl<'de> Deserialize<'de> for Version
source§fn deserialize<D>(
deserializer: D
) -> Result<Version, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D
) -> Result<Version, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl Ord for Version
impl Ord for Version
source§impl PartialEq<Version> for Version
impl PartialEq<Version> for Version
source§impl PartialOrd<Version> for Version
impl PartialOrd<Version> for Version
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moresource§impl Serialize for Version
impl Serialize for Version
source§fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Serialize this value into the given Serde serializer. Read more