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
42
43
44
45
46
47
48
49
50
51
52
//! Shaperglot is a library for checking a font's language support.
//!
//! Unlike other language coverage tools, shaperglot is based on the idea
//! that the font must not simply cover Unicode codepoints to support a
//! language but must also behave in certain ways. Shaperglot does not
//! dictate particular implementations of language support, in terms of
//! what glyphs or rules are present in the font or how glyphs should be named,
//! but tests a font for its behaviour.
//!
//! # Example
//!
//! ```
//! use shaperglot::{Checker, Languages, Provider};
//!
//! fn test_font(font_binary: &[u8]) {
//! let font = Checker::new(font_binary).expect("Failed to load font");
//! let languages = Languages::new();
//! for language in languages.iter() {
//! let results = font.check(language);
//! println!("{}", results.to_summary_string(language));
//! }
//! }
//! ```
/// The checker object, representing the context of a check
/// Low-level checks and their implementations
/// Utility functions to extract information from a font
/// Structures and routines relating to the language database
/// Providers turn a language definition into a set of checks
/// The reporter object, representing the results of a language test
/// Utility functions for text shaping
pub use crate::;
/// A glyph ID.
pub type GlyphId = u32;