1 extern crate bstr; 2 3 use std::error::Error; 4 use std::io::{self, Write}; 5 6 use bstr::{io::BufReadExt, ByteSlice}; 7 main() -> Result<(), Box<dyn Error>>8fn main() -> Result<(), Box<dyn Error>> { 9 let stdin = io::stdin(); 10 let mut stdout = io::BufWriter::new(io::stdout()); 11 12 stdin.lock().for_byte_line_with_terminator(|line| { 13 let end = line 14 .grapheme_indices() 15 .map(|(_, end, _)| end) 16 .take(10) 17 .last() 18 .unwrap_or(line.len()); 19 stdout.write_all(line[..end].trim_end())?; 20 stdout.write_all(b"\n")?; 21 Ok(true) 22 })?; 23 Ok(()) 24 } 25