diff --git a/crates/typst/src/font/book.rs b/crates/typst/src/font/book.rs index b758e585a..38b9b4217 100644 --- a/crates/typst/src/font/book.rs +++ b/crates/typst/src/font/book.rs @@ -22,15 +22,20 @@ impl FontBook { Self { families: BTreeMap::new(), infos: vec![] } } - /// Create a font book for a collection of fonts. - pub fn from_fonts<'a>(fonts: impl IntoIterator<Item = &'a Font>) -> Self { + /// Create a font book from a collection of font infos. + pub fn from_infos(infos: impl IntoIterator<Item = FontInfo>) -> Self { let mut book = Self::new(); - for font in fonts { - book.push(font.info().clone()); + for info in infos { + book.push(info); } book } + /// Create a font book for a collection of fonts. + pub fn from_fonts<'a>(fonts: impl IntoIterator<Item = &'a Font>) -> Self { + Self::from_infos(fonts.into_iter().map(|font| font.info().clone())) + } + /// Insert metadata into the font book. pub fn push(&mut self, info: FontInfo) { let index = self.infos.len();