use std::io::{self, Write}; const BELL_CHUNK: [u8; 64] = [b'\x07'; 64]; pub(crate) fn write_terminal_bells(writer: &mut W, count: u16) -> io::Result<()> { let full_chunks = usize::from(count) / BELL_CHUNK.len(); let remainder = usize::from(count) % BELL_CHUNK.len(); for _ in 0..full_chunks { writer.write_all(&BELL_CHUNK)?; } writer.write_all(&BELL_CHUNK[..remainder])?; writer.flush() } #[cfg(test)] mod tests { use super::*; #[test] fn writes_exact_terminal_bell_count() { let mut output = Vec::new(); write_terminal_bells(&mut output, 130).unwrap(); assert_eq!(output, vec![b'\x07'; 130]); } }