]> git.proxmox.com Git - cargo.git/blob - vendor/bstr/examples/graphemes.rs
New upstream version 0.37.0
[cargo.git] / vendor / bstr / examples / graphemes.rs
1 extern crate bstr;
2
3 use std::error::Error;
4 use std::io::{self, Write};
5
6 use bstr::{io::BufReadExt, ByteSlice};
7
8 fn 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 }