-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.rs
40 lines (32 loc) · 929 Bytes
/
main.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
use std::env;
use std::fs;
use std::io::Read;
fn main() {
let filename = env::args().nth(1).unwrap();
let mut file = fs::File::open(&filename).unwrap();
let mut buffer = Vec::new();
let _ = file.read_to_end(&mut buffer).unwrap();
println!("Opened {}, which is {} bytes", filename, buffer.len());
struct Range {
offset: usize,
length: usize
};
struct Header {
name: &'static str,
range: Range
};
let name_header = Header {
name: "title",
range: Range {
offset: 308,
length: 16
}
};
let headers = vec![name_header];
for header in headers {
let start = header.range.offset;
let end = header.range.offset + header.range.length - 1;
let mut header_slice = &buffer[start..end];
println!("{}: {}", header.name, String::from_utf8_lossy(&mut header_slice));
}
}