use crate::PxScale;
pub type Point = ab_glyph_rasterizer::Point;
pub use ab_glyph_rasterizer::point;
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct GlyphId(pub u16);
impl GlyphId {
#[inline]
pub fn with_scale_and_position<S: Into<PxScale>, P: Into<Point>>(
self,
scale: S,
position: P,
) -> Glyph {
Glyph {
id: self,
scale: scale.into(),
position: position.into(),
}
}
#[inline]
pub fn with_scale<S: Into<PxScale>>(self, scale: S) -> Glyph {
self.with_scale_and_position(scale, Point::default())
}
}
#[derive(Clone, Debug, PartialEq, PartialOrd)]
pub struct Glyph {
pub id: GlyphId,
pub scale: PxScale,
pub position: Point,
}