rust_toolchain/channel/
beta.rs1use crate::RustVersion;
2
3#[derive(Clone, Debug, Eq, Hash, PartialEq, PartialOrd, Ord)]
7pub struct Beta {
8 pub version: RustVersion,
10 pub prerelease: Option<u32>,
12}
13
14impl Beta {
15 pub fn new(major: u64, minor: u64, patch: u64, prerelease: Option<u32>) -> Self {
17 Self {
18 version: RustVersion::new(major, minor, patch),
19 prerelease,
20 }
21 }
22}
23
24#[cfg(test)]
25mod tests {
26 use crate::{RustVersion, channel::Beta};
27
28 #[yare::parameterized(
29 day1 = { RustVersion::new(0, 0, 0), RustVersion::new(0, 0, 1) },
30 month1 = { RustVersion::new(0, 0, 0), RustVersion::new(0, 1, 0) },
31 year1 = { RustVersion::new(0, 0, 0), RustVersion::new(1, 0, 0) },
32 month_over_day = { RustVersion::new(0, 0, 999), RustVersion::new(0, 1, 0) },
33 year_over_day = { RustVersion::new(0, 0, 999), RustVersion::new(1, 0, 0) },
34 year_over_month = { RustVersion::new(0, 999, 0), RustVersion::new(1, 0, 0) },
35 )]
36 fn ord(left: RustVersion, right: RustVersion) {
37 let left = Beta {
38 version: left,
39 prerelease: None,
40 };
41 let right = Beta {
42 version: right,
43 prerelease: None,
44 };
45
46 assert!(left < right);
47 }
48}