Como converter String, &str, Vec<u8> e &[u8] entre si em Rust?
Olá a todos! Comecei a estudar Rust recentemente e estou constantemente confuso com as conversões entre strings e arrays de bytes. O problema surge porque em Rust existem diferentes tipos para strings: String, &str, e para bytes — Vec<u8> e &[u8].
Por exemplo, estou escrevendo um programa simples que lê um arquivo, processa strings e exibe o resultado. Mas estou recebendo constantemente erros de compilação porque não consigo entender como converter corretamente um tipo em outro.
use std::fs;
fn main() {
let data: Vec<u8> = fs::read("example.txt").unwrap();
// Como converter Vec<u8> em String?
let text: String = ???;
// Depois preciso passar parte da string para uma função que aceita &