font_types/
lib.rs

1//! Common [scalar data types][data types] used in font files
2//!
3//! [data types]: https://docs.microsoft.com/en-us/typography/opentype/spec/otff#data-types
4
5#![cfg_attr(docsrs, feature(doc_auto_cfg))]
6#![deny(rustdoc::broken_intra_doc_links)]
7#![warn(clippy::doc_markdown)]
8#![cfg_attr(not(feature = "std"), no_std)]
9
10#[cfg(feature = "std")]
11#[macro_use]
12extern crate std;
13
14#[cfg(not(feature = "std"))]
15#[macro_use]
16extern crate core as std;
17
18mod bbox;
19mod fixed;
20mod fword;
21mod glyph_id;
22mod int24;
23mod longdatetime;
24mod name_id;
25mod offset;
26mod point;
27mod raw;
28mod tag;
29mod uint24;
30mod version;
31
32#[cfg(all(test, feature = "serde"))]
33mod serde_test;
34
35pub use bbox::BoundingBox;
36pub use fixed::{F26Dot6, F2Dot14, F4Dot12, F6Dot10, Fixed};
37pub use fword::{FWord, UfWord};
38pub use glyph_id::{GlyphId, GlyphId16, TryFromGlyphIdError};
39pub use int24::Int24;
40pub use longdatetime::LongDateTime;
41pub use name_id::NameId;
42pub use offset::{Nullable, Offset16, Offset24, Offset32};
43pub use point::Point;
44pub use raw::{BigEndian, FixedSize, Scalar};
45pub use tag::{InvalidTag, Tag};
46pub use uint24::Uint24;
47pub use version::{Compatible, MajorMinor, Version16Dot16};
48
49/// The header tag for a font collection file.
50pub const TTC_HEADER_TAG: Tag = Tag::new(b"ttcf");
51
52/// The SFNT version for fonts containing TrueType outlines.
53pub const TT_SFNT_VERSION: u32 = 0x00010000;
54/// The SFNT version for legacy Apple fonts containing TrueType outlines.
55pub const TRUE_SFNT_VERSION: u32 = 0x74727565;
56/// The SFNT version for fonts containing CFF outlines.
57pub const CFF_SFNT_VERSION: u32 = 0x4F54544F;