extern crate icns; use icns::IconFamily; use std::env; use std::fs::File; use std::io::BufReader; fn main() { if env::args().count() != 2 { println!("Usage: readicns "); return; } let path = env::args().nth(1).unwrap(); let file = File::open(path).expect("failed to open file"); let buffered = BufReader::new(file); let family = IconFamily::read(buffered).expect("failed to read ICNS file"); println!("ICNS file contains {} element(s).", family.elements.len()); for (index, element) in family.elements.iter().enumerate() { println!("Element {}: {} ({} byte payload)", index, element.ostype, element.data.len()); } }