Struct lenient_semver::VersionLite [−][src]
pub struct VersionLite<'input> { pub major: u64, pub minor: u64, pub patch: u64, pub additional: Additional, pub pre: PreRelease<'input>, pub build: Build<'input>, }
Expand description
Represents a lenient semantic version number.
The version is bound to the lifetime of the input string.
Fields
major: u64
The major version.
minor: u64
The minor version.
patch: u64
The patch version.
additional: Additional
additional version numbers.
pre: PreRelease<'input>
The pre-release metadata.
build: Build<'input>
The build metadata.
Implementations
Constructs a new, empty version
Examples
let version = Version::empty(); assert_eq!(version.to_string(), "0.0.0")
Constructs a new version out of the three regular version components
Examples
let version = Version::new(1, 2, 3); assert_eq!(version.to_string(), "1.2.3")
Parse a string slice into a Version.
This parser does not require semver-specification conformant input and is more lenient in what it allows.
For more information, see lenient_semver_parser
.
Examples
let version = Version::parse("v1.2.3.4.5+build.42"); assert!(version.is_ok());
Bumps the major version.
Sets minor, patch, and additional numbers to 0, removes pre-release and build identifier.
Examples
let mut version = Version::parse("1.2.3.4.5-pre+build").unwrap(); version.bump_major(); assert_eq!(version.to_string(), "2.0.0.0.0");
Returns a new version with the major version bumped.
Sets minor, patch, and additional numbers to 0, removes pre-release and build identifier. The lifetime for the resulting version can differ from the lifetime of this version.
Examples
let version = Version::parse("1.2.3.4.5-pre+build").unwrap(); assert_eq!(version.bumped_major().to_string(), "2.0.0.0.0");
Bumps the minor version.
Sets patch and additional numbers to 0, removes pre-release and build identifier.
Examples
let mut version = Version::parse("1.2.3.4.5-pre+build").unwrap(); version.bump_minor(); assert_eq!(version.to_string(), "1.3.0.0.0");
Returns a new version with the minor version bumped.
Sets patch and additional numbers to 0, removes pre-release and build identifier. The lifetime for the resulting version can differ from the lifetime of this version.
Examples
let version = Version::parse("1.2.3.4.5-pre+build").unwrap(); assert_eq!(version.bumped_minor().to_string(), "1.3.0.0.0");
Bumps the patch version.
Sets any additional numbers to 0, removes pre-release and build identifier.
Examples
let mut version = Version::parse("1.2.3.4.5-pre+build").unwrap(); version.bump_patch(); assert_eq!(version.to_string(), "1.2.4.0.0");
Returns a new version with the patch version bumped.
Sets any additional numbers to 0, removes pre-release and build identifier. The lifetime for the resulting version can differ from the lifetime of this version.
Examples
let version = Version::parse("1.2.3.4.5-pre+build").unwrap(); assert_eq!(version.bumped_patch().to_string(), "1.2.4.0.0");
Bumps any additional version.
Sets any following additional numbers to 0, removes pre-release and build identifier. If there are not enough additional numbers, only the pre-release and build identifier is removed.
Examples
let mut version = Version::parse("1.2.3.4.5-pre+build").unwrap(); version.bump_additional(0); assert_eq!(version.to_string(), "1.2.3.5.0"); let mut version = Version::parse("1.2.3.4.5-pre+build").unwrap(); version.bump_additional(1); assert_eq!(version.to_string(), "1.2.3.4.6"); let mut version = Version::parse("1.2.3.4.5-pre+build").unwrap(); version.bump_additional(2); assert_eq!(version.to_string(), "1.2.3.4.5");
Returns a new version with the minor version bumped.
Sets patch and additional numbers to 0, removes pre-release and build identifier. The lifetime for the resulting version can differ from the lifetime of this version.
Examples
let version = Version::parse("1.2.3.4.5-pre+build").unwrap(); assert_eq!(version.bumped_additional(0).to_string(), "1.2.3.5.0"); assert_eq!(version.bumped_additional(1).to_string(), "1.2.3.4.6"); assert_eq!(version.bumped_additional(2).to_string(), "1.2.3.4.5");
Returns true if this version has pre-release metadata, i.e. it represents a pre-release.
Examples
let version = Version::parse("1").unwrap(); assert!(!version.is_pre_release()); let version = Version::parse("1-pre").unwrap(); assert!(version.is_pre_release()); let version = Version::parse("1+build").unwrap(); assert!(!version.is_pre_release());
Disassociate this Version by changing the lifetime to something new.
The returned is a copy of self without any metadata. Nothing in the new version references ’input, so we can change the lifetime to something else.
The existing identifiers for pre-release and build are returned as well, so that users can clone and re-add them.
Examples
use lenient_semver_parser::VersionBuilder; let input = String::from("1-pre+build"); let version = Version::parse(&input).unwrap(); // couldn't drop input here // drop(input); let (mut version, pre, build) = version.disassociate_metadata::<'static>(); assert_eq!(Some("pre"), *pre); assert_eq!(Some("build"), *build); // now we can drop the input drop(input); // We can use the new version after it has be disassociated from `input`. assert_eq!("1.0.0", version.to_string()); // only static metadata references are allowed now (because we said 'static earlier) version.add_pre_release("pre2"); version.add_build("build2"); assert_eq!("1.0.0-pre2+build2", version.to_string());
Trait Implementations
pub fn deserialize<D>(
deserializer: D
) -> Result<Version<'input>, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
[src]
pub fn deserialize<D>(
deserializer: D
) -> Result<Version<'input>, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
[src]Deserialize this value from the given Serde deserializer. Read more
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
pub fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
[src]
pub fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
[src]Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations
impl<'input> RefUnwindSafe for Version<'input>
impl<'input> UnwindSafe for Version<'input>
Blanket Implementations
Mutably borrows from an owned value. Read more