You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
756 B
29 lines
756 B
extern crate unicode_segmentation;
|
|
|
|
use std::error::Error;
|
|
use std::io::{self, BufRead, Write};
|
|
|
|
use unicode_segmentation::UnicodeSegmentation;
|
|
|
|
fn main() -> Result<(), Box<dyn Error>> {
|
|
let stdin = io::stdin();
|
|
let mut stdin = stdin.lock();
|
|
let mut stdout = io::BufWriter::new(io::stdout());
|
|
|
|
let mut line = String::new();
|
|
while stdin.read_line(&mut line)? > 0 {
|
|
let end = line
|
|
.grapheme_indices(true)
|
|
.map(|(start, g)| start + g.len())
|
|
.take(10)
|
|
.last()
|
|
.unwrap_or(line.len());
|
|
#[allow(deprecated)] // for Rust 1.28.0
|
|
stdout.write_all(line[..end].trim_right().as_bytes())?;
|
|
stdout.write_all(b"\n")?;
|
|
|
|
line.clear();
|
|
}
|
|
Ok(())
|
|
}
|