| use std::error::Error; | |
| use std::io::{self, Write}; | |
| use bstr::{io::BufReadExt, ByteSlice}; | |
| fn main() -> Result<(), Box<dyn Error>> { | |
| let stdin = io::stdin(); | |
| let mut stdout = io::BufWriter::new(io::stdout()); | |
| stdin.lock().for_byte_line_with_terminator(|line| { | |
| let end = line | |
| .grapheme_indices() | |
| .map(|(_, end, _)| end) | |
| .take(10) | |
| .last() | |
| .unwrap_or(line.len()); | |
| stdout.write_all(line[..end].trim_end())?; | |
| stdout.write_all(b"\n")?; | |
| Ok(true) | |
| })?; | |
| Ok(()) | |
| } |