glyph_brush

Trait GlyphPositioner

source
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§

source

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.

source

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§

source

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>,

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.

Implementors§