use crate::priority::Priority;
#[derive(Debug, Clone, Copy)]
pub struct RtCurrent {
priority: Priority,
}
impl RtCurrent {
#[must_use]
pub fn new(priority: Priority) -> Self {
Self { priority }
}
#[must_use]
pub fn get_priority(&self) -> Priority {
self.priority
}
pub fn set_priority(&mut self, priority: Priority) {
self.priority = priority;
}
}
impl Default for RtCurrent {
fn default() -> Self {
Self {
priority: Priority::new(0).unwrap_or_else(|| Priority::clamped(0)),
}
}
}
#[cfg(test)]
#[allow(clippy::unwrap_used, clippy::panic)]
mod tests {
use super::*;
#[test]
fn get_set_priority() {
let mut cur = RtCurrent::new(Priority::new(10).unwrap());
assert_eq!(cur.get_priority().value(), 10);
cur.set_priority(Priority::new(50).unwrap());
assert_eq!(cur.get_priority().value(), 50);
}
#[test]
fn default_is_zero() {
assert_eq!(RtCurrent::default().get_priority().value(), 0);
}
}