Crate ole [] [src]

A simple parser and reader for Microsoft Compound Document File.

This includes a basic parser, which validates the format of a given file or a given stream. It includes a reader too, for iterating over entries and for extracting files inside the OLE storage.

Example


use ole::OLEReader;
use std::io::{Read, Write};

let mut file = std::fs::File::open("assets/Thumbs.db").unwrap();
let mut parser = OLEReader::new(file).unwrap();

// Iterate through the entries
for entry in parser.iterate() {
    println!("{}", entry);
}

// We're going to extract a file from the OLE storage
let entry = parser.iterate().next().unwrap();
let mut slice = parser.get_entry_slice(entry).unwrap();
let mut buffer = std::vec::Vec::<u8>::with_capacity(slice.len());
slice.read_to_end(&mut buffer);

// Saves the extracted file
let mut extracted_file = std::fs::File::create("./file.bin").unwrap();
extracted_file.write_all(&buffer[..]);

Compatibility

The ole crate is tested for rust 1.9 or greater.

Structs

OLEEntry

An entry in an OLE file.

OLEEntrySlice

Slice of the content of the entry.

OLEReader

An OLE file reader.

Enums

OLEError

Errors related to the process of parsing.