diff --git a/src/lib.rs b/src/lib.rs index 3bcf854..3228afa 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -261,10 +261,16 @@ fn read_nrg_chunks(mut fd: &mut File, nm: &mut NrgMetadata) -> Result Result { - let mut handle = fd.take(4); - let mut chunk_id = String::new(); - try!(handle.read_to_string(&mut chunk_id)); - Ok(chunk_id) + read_sized_string(fd, 4) +} + + +/// Reads a String of size `size` from `fd`. +fn read_sized_string(fd: &File, size: u64) -> Result { + let mut handle = fd.take(size); + let mut string = String::new(); + try!(handle.read_to_string(&mut string)); + Ok(string) }