iff_rs 0.1.1

A rust crate for reading Amiga IFF files
Documentation
use iff_rs::{IFFFile, parse_iff};
use std::fs::File;
use std::io::{self, Error, Write};

fn create_sample_iff() -> Result<(), Error> {
    let mut file = File::create("sample.iff")?;
    file.write_all(b"FORM")?;
    file.write_all(&[0, 0, 0, 8])?;
    file.write_all(b"DATA")?;
    file.write_all(&[0, 0, 0, 4])?;
    file.write_all(b"abcd")?;
    Ok(())
}

#[test]
fn test_parse_simple_iff() {
    create_sample_iff().expect("Failed to create sample IFF file");

    let file: File = File::open("sample.iff").expect("Failed to open sample IFF file");
    let iff = parse_iff(file).expect("Failed to parse IFF file");

    assert_eq!(iff.chunks.len(), 1);
    let chunk = &iff.chunks[0];
    assert_eq!(chunk.id, u32::from_be_bytes(*b"DATA"));
    assert_eq!(chunk.len, 4);
    assert_eq!(chunk.data, b"abcd");
    
}