use super::ProgressState;
use core::fmt::{self, Display};
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq)]
pub struct OSC94 {
pub state: ProgressState,
pub progress: u8,
}
impl OSC94 {
#[must_use]
pub fn new() -> Self {
Self::default()
}
}
impl Display for OSC94 {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "\x1b]9;4;{};{}\x07", self.state as u8, self.progress)
}
}
#[cfg(test)]
mod tests {
use super::*;
use std::format;
#[test]
fn test_raw_progress_sequence() {
let sequence = OSC94::new();
assert_eq!(format!("{sequence}"), "\x1b]9;4;0;0\x07");
}
}