Skip to main content

rs_string2name/
lib.rs

1use std::io;
2
3use io::BufWriter;
4use io::Write;
5
6use io::BufRead;
7
8pub fn str2slug<S>(original: S) -> String
9where
10    S: AsRef<str>,
11{
12    slug::slugify(original)
13}
14
15pub fn strings2slugs2writer<I, W>(strings: I, mut wtr: W) -> Result<(), io::Error>
16where
17    I: Iterator<Item = Result<String, io::Error>>,
18    W: Write,
19{
20    for rline in strings {
21        let line: String = rline?;
22        let converted: String = str2slug(line);
23        writeln!(&mut wtr, "{converted}")?;
24    }
25    wtr.flush()
26}
27
28pub fn stdin2strings2slugs2stdout() -> Result<(), io::Error> {
29    let o = io::stdout();
30    let mut ol = o.lock();
31    strings2slugs2writer(io::stdin().lock().lines(), BufWriter::new(&mut ol))?;
32    ol.flush()
33}