pub struct SemVer(pub Version);
Expand description
Container for a semantic version.
Tuple Fields§
§0: Version
Implementations§
Methods from Deref<Target = Version>§
Sourcepub fn cmp_precedence(&self, other: &Version) -> Ordering
pub fn cmp_precedence(&self, other: &Version) -> Ordering
Compare the major, minor, patch, and pre-release value of two versions, disregarding build metadata. Versions that differ only in build metadata are considered equal. This comparison is what the SemVer spec refers to as “precedence”.
§Example
use semver::Version;
let mut versions = [
"1.20.0+c144a98".parse::<Version>().unwrap(),
"1.20.0".parse().unwrap(),
"1.0.0".parse().unwrap(),
"1.0.0-alpha".parse().unwrap(),
"1.20.0+bc17664".parse().unwrap(),
];
// This is a stable sort, so it preserves the relative order of equal
// elements. The three 1.20.0 versions differ only in build metadata so
// they are not reordered relative to one another.
versions.sort_by(Version::cmp_precedence);
assert_eq!(versions, [
"1.0.0-alpha".parse().unwrap(),
"1.0.0".parse().unwrap(),
"1.20.0+c144a98".parse().unwrap(),
"1.20.0".parse().unwrap(),
"1.20.0+bc17664".parse().unwrap(),
]);
// Totally order the versions, including comparing the build metadata.
versions.sort();
assert_eq!(versions, [
"1.0.0-alpha".parse().unwrap(),
"1.0.0".parse().unwrap(),
"1.20.0".parse().unwrap(),
"1.20.0+bc17664".parse().unwrap(),
"1.20.0+c144a98".parse().unwrap(),
]);
Trait Implementations§
Source§impl<'de> Deserialize<'de> for SemVer
impl<'de> Deserialize<'de> for SemVer
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<SemVer, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<SemVer, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Ord for SemVer
impl Ord for SemVer
Source§impl PartialOrd for SemVer
impl PartialOrd for SemVer
Source§impl Serialize for SemVer
impl Serialize for SemVer
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
impl Eq for SemVer
impl StructuralPartialEq for SemVer
Auto Trait Implementations§
impl Freeze for SemVer
impl RefUnwindSafe for SemVer
impl Send for SemVer
impl Sync for SemVer
impl Unpin for SemVer
impl UnwindSafe for SemVer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.Source§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
Source§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
Fallible version of
ToCompactString::to_compact_string()
Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
Converts the given value to a
CompactString
. Read more