19 октября 2023 Rust


use std::io::{self, Write};

fn main() -> io::Result<()> {

    for (idx, line) in std::io::stdin().lines().enumerate() {
        match line {
            Ok(_line) => {
                let _cnt = _line.len();
                let _line = format!("{idx:>5}:[{_cnt:>3}] -> {_line}\n");
                let _ = io::stdout().write(_line.as_bytes());
            },
            Err(e) => println!("Error: {e}")
        };
    }

    Ok(())

}

Здесь интересным может показаться разворачивание итератора line с помощью конструкции match, так как в line может быть Ok("строка") или Err("ошибка"), то для использования необходимо развернуть

А так же вместо println используется запись в stdout