use std::fmt::Write;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[repr(u8)]
pub enum Urgency {
Critical = 0,
High = 1,
Default = 3,
Background = 7,
}
pub fn header_value(urgency: Urgency, incremental: bool) -> String {
let mut out = String::with_capacity(16);
let _ = write!(out, "u={}", urgency as u8);
if incremental {
out.push_str(", i");
}
out
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn header_default_is_u3() {
assert_eq!(header_value(Urgency::Default, false), "u=3");
}
#[test]
fn header_critical_packument() {
assert_eq!(header_value(Urgency::Critical, false), "u=0");
}
#[test]
fn header_tarball_incremental() {
assert_eq!(header_value(Urgency::High, true), "u=1, i");
}
#[test]
fn header_background_streaming() {
assert_eq!(header_value(Urgency::Background, true), "u=7, i");
}
}