pub struct Version { /* private fields */ }Expand description
表示一个版本号的结构体
包含了 major(主版本号) minor(次版本号) patch(补丁版本号) 和 可选的suffix(版本后缀)
use version::Version;
// 基于现有字符串
let version_s = Version::build_string("1.0.0").unwrap();
println!("{}", version_s.to_string())Implementations§
Source§impl Version
impl Version
Sourcepub fn build_string(version: &str) -> Result<Version, ParseError>
pub fn build_string(version: &str) -> Result<Version, ParseError>
通过字符串构建 Version 结构体对象
§参数
version -
字符串必须遵循此结构
"XX.XX.XX-YY"
或者
"XX.XX-YY"
其中 YY 部分可缺省,此时的形式为
"XX.XX.XX"
§返回值
Ok(Version) - 版本号对象 Err(ParseError) - 解析错误
§示例
use version::Version;
let v = Version::build_string("1.0.0").unwrap(); // 主.副.补丁
let v_suffix = Version::build_string("2.0.0-beta").unwrap(); // 主.副.补丁-后缀
let v_major_minor = Version::build_string("1.2").unwrap(); // 主.副Sourcepub fn is_newer(&self, other: &Version) -> bool
pub fn is_newer(&self, other: &Version) -> bool
比较传入的版本号是否为最新版本
§参数
other- 传入要比较的版本号的地址
§返回值
true - 当传入版本号为最新时返回
false - 其他情况返回
§注意
判断是否为新版本逻辑如下
- 判断主版本号、副版本号、补丁版本号
- 判断两者之一是否有后缀,有后缀的版本号默认被认为是新版本
§示例
use version::Version;
let v_old = Version::build_string("1.0.0").unwrap();
let v_new = Version::build_string("2.0.0").unwrap();
assert_eq!(v_old.is_newer(&v_new), true)Auto Trait Implementations§
impl Freeze for Version
impl RefUnwindSafe for Version
impl Send for Version
impl Sync for Version
impl Unpin for Version
impl UnsafeUnpin for Version
impl UnwindSafe for Version
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