summaryrefslogtreecommitdiff
path: root/src/font
diff options
context:
space:
mode:
Diffstat (limited to 'src/font')
-rw-r--r--src/font/book.rs4
-rw-r--r--src/font/mod.rs6
2 files changed, 8 insertions, 2 deletions
diff --git a/src/font/book.rs b/src/font/book.rs
index 2ad30f1d..38dfee1d 100644
--- a/src/font/book.rs
+++ b/src/font/book.rs
@@ -170,7 +170,7 @@ bitflags::bitflags! {
impl FontInfo {
/// Compute metadata for all fonts in the given data.
- pub fn from_data(data: &[u8]) -> impl Iterator<Item = FontInfo> + '_ {
+ pub fn iter(data: &[u8]) -> impl Iterator<Item = FontInfo> + '_ {
let count = ttf_parser::fonts_in_collection(data).unwrap_or(1);
(0..count).filter_map(move |index| {
let ttf = ttf_parser::Face::parse(data, index).ok()?;
@@ -179,7 +179,7 @@ impl FontInfo {
}
/// Compute metadata for a single ttf-parser face.
- pub fn from_ttf(ttf: &ttf_parser::Face) -> Option<Self> {
+ pub(super) fn from_ttf(ttf: &ttf_parser::Face) -> Option<Self> {
// We cannot use Name ID 16 "Typographic Family", because for some
// fonts it groups together more than just Style / Weight / Stretch
// variants (e.g. Display variants of Noto fonts) and then some
diff --git a/src/font/mod.rs b/src/font/mod.rs
index 98875d8f..13189b6d 100644
--- a/src/font/mod.rs
+++ b/src/font/mod.rs
@@ -69,6 +69,12 @@ impl Font {
})))
}
+ /// Parse all fonts in the given data.
+ pub fn iter(data: Buffer) -> impl Iterator<Item = Self> {
+ let count = ttf_parser::fonts_in_collection(&data).unwrap_or(1);
+ (0..count).filter_map(move |index| Self::new(data.clone(), index))
+ }
+
/// The underlying buffer.
pub fn data(&self) -> &Buffer {
&self.0.data