Rust - как в цикле пройти по string slice?

Как для данного примера (возможно изначально подход нужен другой - не получение string slice из slice of bytes) читать построчно в цикле? Цикл нужен чтобы использовать regex для строки дальше.

use std::str;

fn main() {

    let buf = &[0x41u8, 0x41u8, 0x42u8];

    let s = match str::from_utf8(buf) {
        Ok(v) => v,
        Err(e) => panic!("Invalid UTF-8 sequence: {}", e),
    };

    println!("result: {}", s);
}

Ответы (1 шт):

Автор решения: Kalashnikov Alexander
use std::io::BufRead; // в этом трейте находится метод read_line

fn main() {
    let buf = [0x41u8, 0x41u8, 0x42u8];
    let mut s = String::new();
    let mut reader = std::io::BufReader::new(&buf[..]); // &[u8] реализует trait std::io::Read
    reader.read_line(&mut s).unwrap(); // здесь может потребоваться обработка ошибок

    println!("result: {}", s);
}

→ Ссылка