#![cfg_attr(docsrs, feature(doc_auto_cfg))]
#![forbid(unsafe_code)]
#![cfg_attr(not(any(test, feature = "std")), no_std)]
#[cfg(not(any(feature = "libm", feature = "std")))]
compile_error!("Either feature \"std\" or \"libm\" must be enabled for this crate.");
#[cfg(not(any(test, feature = "std")))]
#[macro_use]
extern crate core as std;
#[macro_use]
extern crate alloc;
pub extern crate read_fonts as raw;
pub mod attribute;
pub mod charmap;
pub mod color;
pub mod font;
pub mod instance;
pub mod metrics;
pub mod outline;
#[cfg(feature = "std")]
pub mod patchmap;
pub mod setting;
pub mod string;
mod collections;
mod provider;
mod variation;
#[doc(inline)]
pub use outline::{OutlineGlyph, OutlineGlyphCollection};
pub use variation::{Axis, AxisCollection, NamedInstance, NamedInstanceCollection};
pub mod prelude {
#[doc(no_inline)]
pub use super::{
font::FontRef,
instance::{LocationRef, NormalizedCoord, Size},
GlyphId, MetadataProvider, Tag,
};
}
pub use read_fonts::{
types::{GlyphId, GlyphId16, Tag},
FontRef,
};
#[doc(inline)]
pub use provider::MetadataProvider;
const GLYF_COMPOSITE_RECURSION_LIMIT: usize = 32;