Как преобразовать буфер кусочка байтов (& [u8]) в целое число?
Я читаю необработанные данные из файла, и я хочу преобразовать его в целое число:
fn main() {
let buf: &[u8] = &[0, 0, 0, 1];
let num = slice_to_i8(buf);
println!("1 == {}", num);
}
pub fn slice_to_i8(buf: &[u8]) -> i32 {
unimplemented!("what should I do here?")
}
Я бы сделал тип на C, но что мне делать в Rust?
Ответы
Ответ 1
Я бы предложил использовать ящик байтов:
extern crate byteorder;
use byteorder::{BigEndian, ReadBytesExt};
fn main() {
let bytes = [0, 0, 0, 1];
let mut buf = &bytes[..];
let num = buf.read_u32::<BigEndian>().unwrap();
println!("1 == {}", num);
}