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::Reader;
use std::io::{Read, Write};

let mut file = std::fs::File::open("assets/Thumbs.db").unwrap();
let mut parser = Reader::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

Entry

An entry in an OLE file.

EntrySlice

Slice of the content of the entry.

OLEIterator

Iterator for entries inside an OLE file.

Reader

An OLE file reader.

Enums

EntryType
Error

Errors related to the process of parsing.