mirx 0.52.0

MIRX binary image format — flat & chunk-based container for ahead-of-time UI assets
Documentation
fn public_root_declarations(source: &str) -> Vec<String> {
    let mut declarations = Vec::new();
    let mut current = None::<String>;

    for line in source.lines() {
        if let Some(statement) = &mut current {
            statement.push(' ');
            statement.push_str(line.trim());
            if line.contains(';') {
                declarations.push(statement.split_whitespace().collect::<Vec<_>>().join(" "));
                current = None;
            }
            continue;
        }

        if !line.starts_with("pub ") {
            continue;
        }
        assert!(line.starts_with("pub mod ") || line.starts_with("pub use "));
        if line.contains(';') {
            declarations.push(line.split_whitespace().collect::<Vec<_>>().join(" "));
        } else {
            current = Some(line.trim().to_owned());
        }
    }

    assert!(current.is_none());
    declarations
}

#[test]
fn root_exports_match_the_canonical_surface() {
    assert_eq!(
        public_root_declarations(include_str!("../src/lib.rs")),
        [
            "pub mod coding;",
            "pub mod document;",
            "pub mod extension;",
            "pub mod font;",
            "pub mod frames;",
            "pub mod image;",
            "pub mod meta;",
            "pub mod palette;",
            "pub mod reader;",
            "pub mod scene;",
            "pub mod types;",
            "pub use document::{Document, DocumentChunkMut, DocumentChunkRef};",
            "pub use header::Layout;",
            "pub use model::{ChunkFlags, ChunkId, ChunkType, InvalidChunkType, PrimaryHints};",
            "pub use reader::{ChunkRef, Reader};",
        ]
    );
}