How to convert byte slice buffer (& [u8]) to an integer?

I am reading raw data from a file and I want to convert it to an integer:

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?") } 

I would make a type in C, but what should I do in Rust?

+10
arrays casting slice rust
source share
1 answer

I would suggest using a byte box :

 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); } 
+17
source share

All Articles