pub mod cursor;
pub mod erase;
#[macro_export]
macro_rules! csi {
($fmt:expr $(, $args:expr)*) => {{
let string = format!("\x1b[{}", format_args!($fmt $(, $args)*));
string
}};
}
#[macro_export]
macro_rules! write_csi {
($writer:expr, $fmt:expr $(, $args:expr)*) => {{
write!($writer, "\x1b[{}", format_args!($fmt $(, $args)*))
}};
}
#[cfg(test)]
mod tests {
#[test]
fn csi_with_single_parameter() {
let count = 5;
assert_eq!(csi!("{count}A"), "\x1b[5A");
}
#[test]
fn csi_with_multiple_parameters() {
let x = 10;
let y = 20;
assert_eq!(csi!("{x};{y}H"), "\x1b[10;20H");
}
#[test]
fn csi_without_parameters() {
assert_eq!(csi!("K"), "\x1b[K");
}
}