nomap

Crates.ionomap
lib.rsnomap
version0.2.1
sourcesrc
created_at2020-04-06 20:07:59.071008
updated_at2021-06-29 14:10:26.113557
descriptionA parser for the `.map` file format used by Quake 1 & 2 as well as Half-Life 1, implemented using the nom parsing framework.
homepagehttps://github.com/reslario/nomap
repositoryhttps://github.com/reslario/nomap
max_upload_size
id227057
size50,031
(reslario)

documentation

https://docs.rs/nomap/

README

Docs License

nomap

A parser for the .map file format used by Quake 1 & 2 as well as Half-Life 1, implemented using the nom parsing framework. It can easily be integrated with other nom parsers.

nomap is whitespace agnostic and ignores comments. It also optionally provides Display implementations for all its types (through the "display" feature), so you can serialise a parsed map back into a string.

Example

// parse the example map with the standard format
let map = nomap::parse::<nomap::formats::Standard>(include_str!("../examples/example.map")).unwrap();

// report our findings
for ent in map.entities.iter() {
    println!(
        "Found entity of class `{}` with {} brush{}",
        // every entity should have this, so we optimistically index here
        ent.fields["classname"],
        ent.brushes.len(),
        // some fanciness
        if ent.brushes.len() == 1 { "" } else { "es" }
    )
}
Commit count: 18

cargo fmt