Skip to content

Commit

Permalink
Remove deref polymorphism
Browse files Browse the repository at this point in the history
  • Loading branch information
simoncozens committed Aug 29, 2024
1 parent cdb55cc commit f48bf64
Showing 1 changed file with 7 additions and 33 deletions.
40 changes: 7 additions & 33 deletions src/hb/face.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,36 +25,6 @@ pub struct hb_font_t<'a> {
pub(crate) gpos: Option<PositioningTable<'a>>,
}

impl<'a> AsRef<ttf_parser::Face<'a>> for hb_font_t<'a> {
#[inline]
fn as_ref(&self) -> &ttf_parser::Face<'a> {
&self.ttfp_face
}
}

impl<'a> AsMut<ttf_parser::Face<'a>> for hb_font_t<'a> {
#[inline]
fn as_mut(&mut self) -> &mut ttf_parser::Face<'a> {
&mut self.ttfp_face
}
}

impl<'a> core::ops::Deref for hb_font_t<'a> {
type Target = ttf_parser::Face<'a>;

#[inline]
fn deref(&self) -> &Self::Target {
&self.ttfp_face
}
}

impl<'a> core::ops::DerefMut for hb_font_t<'a> {
#[inline]
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.ttfp_face
}
}

impl<'a> hb_font_t<'a> {
/// Creates a new `Face` from data.
///
Expand Down Expand Up @@ -121,10 +91,14 @@ impl<'a> hb_font_t<'a> {
self.points_per_em = ptem;
}

pub(crate) fn tables(&self) -> &ttf_parser::FaceTables<'a> {
self.ttfp_face.tables()
}

/// Sets font variations.
pub fn set_variations(&mut self, variations: &[Variation]) {
for variation in variations {
self.set_variation(variation.tag, variation.value);
self.ttfp_face.set_variation(variation.tag, variation.value);
}
self.font.set_coords(self.ttfp_face.variation_coordinates());
}
Expand Down Expand Up @@ -257,7 +231,7 @@ impl<'a> hb_font_t<'a> {
return false;
}

if let Some(clip_box) = colr.clip_box(glyph, self.variation_coordinates()) {
if let Some(clip_box) = colr.clip_box(glyph, self.ttfp_face.variation_coordinates()) {
// Floor
glyph_extents.x_bearing = (clip_box.x_min).round() as i32;
glyph_extents.y_bearing = (clip_box.y_max).round() as i32;
Expand All @@ -272,7 +246,7 @@ impl<'a> hb_font_t<'a> {
glyph,
0,
&mut extents_data,
self.variation_coordinates(),
self.ttfp_face.variation_coordinates(),
RgbaColor::new(0, 0, 0, 0),
)
.is_some();
Expand Down

0 comments on commit f48bf64

Please sign in to comment.