entities 1.0.0

Provides the raw data needed to convert to and from HTML entities.
Documentation

entities Build Status Crates.io

Provides the raw data needed to convert to and from HTML entities.

extern crate entities;
use entities::ENTITIES;

fn main() {
    let entity = ENTITIES
        .iter()
        .find(|e| e.entity == ">")
        .unwrap();

    assert_eq!(entity.characters, ">");
    assert_eq!(entity.entity, ">");
}

There isn't a 1-to-1 mapping of entities to "characters" which is why this crate provides a flat array rather than a map—the best way to map the entities depends on the problem you're trying to solve.

If you want to create a mapping structure you can make one using static str slices to reuse the statically allocated strings from this crate e.g.

fn make_mapping() -> HashMap<&'static str, &'static str> {
    let mut mapping = HashMap::new();
    mapping.insert(ENTITIES[0].entity, ENTITIES[0].characters);
    mapping
}

I expect this crate will reach version 1.0 pretty quickly after I've tried the API out in an app.

Data was generated from https://www.w3.org/TR/html5/entities.json