rust-docx 0.2.13

Rust parser, document model, and serializer for DOCX and legacy Word documents
Documentation
fn main() {
    let path = std::env::args().nth(1).expect("path");
    let bytes = std::fs::read(&path).expect("read");
    let pkg = if path.ends_with(".doc") {
        rust_docx::parse_document_bytes(&bytes).expect("parse")
    } else {
        rust_docx::parse_docx(&bytes).expect("parse_docx")
    };
    let model = rust_docx::build_doc_model(&pkg);
    println!("parts: {}", pkg.parts.len());
    println!("binary assets: {:?}", pkg.binary_assets.keys().collect::<Vec<_>>());
    println!("headers: {}", model.metadata.header_sections.len());
    println!("footers: {}", model.metadata.footer_sections.len());
    println!("numbering: {}", model.metadata.numbering_definitions.is_some());
    println!("footnotes: {:?}", model.metadata.footnotes.as_ref().map(|n| n.len()));
    for h in &model.metadata.header_sections {
        println!("  header {} type={:?} nodes={}", h.part_name, h.reference_type, h.nodes.len());
    }
    println!("warnings: {:?}", &model.metadata.warnings);
}