diff --git a/src/main.rs b/src/main.rs index e7a11a9..995581b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,40 @@ +use std::env; +use std::fs; +use std::io::Read; + fn main() { - println!("Hello, world!"); + 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)); + } + }