Go from String to &str when passing font names to SVG code (#4500)

This commit is contained in:
Sébastien d'Herbais de Thun 2024-07-04 11:27:34 -07:00 committed by GitHub
parent 3b32aa7929
commit b847cccba4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 7 deletions

View File

@ -196,7 +196,7 @@ fn layout_image(
format,
elem.alt(styles),
engine.world,
&families(styles).map(|s| s.into()).collect::<Vec<_>>(),
&families(styles).collect::<Vec<_>>(),
)
.at(span)?;
@ -360,7 +360,7 @@ impl Image {
format: ImageFormat,
alt: Option<EcoString>,
world: Tracked<dyn World + '_>,
families: &[String],
families: &[&str],
) -> StrResult<Image> {
let kind = match format {
ImageFormat::Raster(format) => {

View File

@ -40,7 +40,7 @@ impl SvgImage {
pub fn with_fonts(
data: Bytes,
world: Tracked<dyn World + '_>,
families: &[String],
families: &[&str],
) -> StrResult<SvgImage> {
let book = world.book();
let resolver = Mutex::new(FontResolver::new(world, book, families));
@ -142,7 +142,7 @@ struct FontResolver<'a> {
/// The world we use to load fonts.
world: Tracked<'a, dyn World + 'a>,
/// The active list of font families at the location of the SVG.
families: &'a [String],
families: &'a [&'a str],
/// A mapping from Typst font indices to fontdb IDs.
to_id: HashMap<usize, Option<fontdb::ID>>,
/// The reverse mapping.
@ -156,7 +156,7 @@ impl<'a> FontResolver<'a> {
fn new(
world: Tracked<'a, dyn World + 'a>,
book: &'a FontBook,
families: &'a [String],
families: &'a [&'a str],
) -> Self {
Self {
book,
@ -191,11 +191,11 @@ impl FontResolver<'_> {
font.families()
.iter()
.filter_map(|family| match family {
usvg::FontFamily::Named(named) => Some(named),
usvg::FontFamily::Named(named) => Some(named.as_str()),
// We don't support generic families at the moment.
_ => None,
})
.chain(self.families)
.chain(self.families.iter().copied())
.filter_map(|named| self.book.select(&named.to_lowercase(), variant))
.find_map(|index| self.get_or_load(index, db))
}