Crate ole

Source
Expand description

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.