1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
//! Parser for fonts in Web Open Font Format.
//!
//! ## Example
//!
//! ```
//! use webtype::opentype::truetype::FontHeader;
//! use webtype::File;
//!
//! macro_rules! ok(($result:expr) => ($result.unwrap()));
//!
//! let path = "NotoNaskhArabic-Regular.woff2";
//! # let path = "tests/fixtures/NotoNaskhArabic-Regular.woff2";
//! let mut tape = ok!(std::fs::File::open(path));
//! let File { mut fonts, mut tape } = ok!(File::read(&mut tape));
//!
//! let font_header = ok!(ok!(fonts[0].take::<_, FontHeader>(&mut tape)));
//! assert_eq!(font_header.units_per_em, 2048);
//! ```
pub extern crate opentype;
#[macro_use(dereference, error, raise, table)]
extern crate typeface;
pub mod version1;
pub mod version2;
mod file;
mod number;
pub use opentype::Font;
pub use typeface::{Error, Result, Tape, Value, Walue};
pub use file::File;
pub use number::v32;
/// Check if a tag is recognized.
#[inline]
pub fn accept(tag: &opentype::truetype::Tag) -> bool {
matches!(&tag.0, b"wOFF" | b"wOF2")
}