rust_toolchain/channel/
beta.rs

1use crate::RustVersion;
2
3/// The `Beta` release [`channel`]
4///
5/// [`channel`]: https://rust-lang.github.io/rustup/concepts/channels.html
6#[derive(Clone, Debug, Eq, Hash, PartialEq, PartialOrd, Ord)]
7pub struct Beta {
8    /// The three component Rust version
9    pub version: RustVersion,
10    /// The nth pre-release beta version, if any
11    pub prerelease: Option<u32>,
12}
13
14#[cfg(test)]
15mod tests {
16    use crate::{channel::Beta, RustVersion};
17
18    #[yare::parameterized(
19        day1 = { RustVersion::new(0, 0, 0), RustVersion::new(0, 0, 1) },
20        month1 = { RustVersion::new(0, 0, 0), RustVersion::new(0, 1, 0) },
21        year1 = { RustVersion::new(0, 0, 0), RustVersion::new(1, 0, 0) },
22        month_over_day = { RustVersion::new(0, 0, 999), RustVersion::new(0, 1, 0) },
23        year_over_day = { RustVersion::new(0, 0, 999), RustVersion::new(1, 0, 0) },
24        year_over_month = { RustVersion::new(0, 999, 0), RustVersion::new(1, 0, 0) },
25    )]
26    fn ord(left: RustVersion, right: RustVersion) {
27        let left = Beta {
28            version: left,
29            prerelease: None,
30        };
31        let right = Beta {
32            version: right,
33            prerelease: None,
34        };
35
36        assert!(left < right);
37    }
38}