pub trait GlyphPositioner: Hash {
// Required methods
fn calculate_glyphs<F, S>(
&self,
fonts: &[F],
geometry: &SectionGeometry,
sections: &[S],
) -> Vec<SectionGlyph>
where F: Font,
S: ToSectionText;
fn bounds_rect(&self, geometry: &SectionGeometry) -> Rect;
// Provided method
fn recalculate_glyphs<F, S, P>(
&self,
previous: P,
change: GlyphChange,
fonts: &[F],
geometry: &SectionGeometry,
sections: &[S],
) -> Vec<SectionGlyph>
where F: Font,
S: ToSectionText,
P: IntoIterator<Item = SectionGlyph> { ... }
}
Expand description
Logic to calculate glyph positioning using Font
,
SectionGeometry
and
SectionText
.
Required Methods§
sourcefn calculate_glyphs<F, S>(
&self,
fonts: &[F],
geometry: &SectionGeometry,
sections: &[S],
) -> Vec<SectionGlyph>where
F: Font,
S: ToSectionText,
fn calculate_glyphs<F, S>(
&self,
fonts: &[F],
geometry: &SectionGeometry,
sections: &[S],
) -> Vec<SectionGlyph>where
F: Font,
S: ToSectionText,
Calculate a sequence of positioned glyphs to render. Custom implementations should return the same result when called with the same arguments to allow layout caching.
sourcefn bounds_rect(&self, geometry: &SectionGeometry) -> Rect
fn bounds_rect(&self, geometry: &SectionGeometry) -> Rect
Return a screen rectangle according to the requested render position and bounds appropriate for the glyph layout.
Provided Methods§
sourcefn recalculate_glyphs<F, S, P>(
&self,
previous: P,
change: GlyphChange,
fonts: &[F],
geometry: &SectionGeometry,
sections: &[S],
) -> Vec<SectionGlyph>
fn recalculate_glyphs<F, S, P>( &self, previous: P, change: GlyphChange, fonts: &[F], geometry: &SectionGeometry, sections: &[S], ) -> Vec<SectionGlyph>
Recalculate a glyph sequence after a change.
The default implementation simply calls calculate_glyphs
so must be implemented
to provide benefits as such benefits are specific to the internal layout logic.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.