sfnt

crates.io docs.rs travis-ci.com

A zero-allocation SFNT parser.

Released under the Apache License 2.0.

Supported on Rust 1.31.0 and later.

Example

```rust use std::fs::{File}; use std::io::{Read};

use sfnt::{Record, Sfnt};

fn main() { // Read the font file into memory. let mut file = File::open("tests/resources/OpenSans-Italic.ttf").unwrap(); let mut bytes = vec![]; file.readtoend(&mut bytes).unwrap();

// Parse the font file and find one of the tables in the font file.
let sfnt = Sfnt::parse(&bytes).unwrap();
let (record, bytes) = sfnt.find(b"head").unwrap();

assert_eq!(record, Record {
    tag: b"head",
    checksum: 4165466467,
    offset: 316,
    length: 54,
});

assert_eq!(bytes.len(), 54);

} ```