[][src]Trait plotters_backend::BackendTextStyle

pub trait BackendTextStyle {
    type FontError: Error + Sync + Send + 'static;
    fn family(&self) -> FontFamily<'_>;
fn layout_box(
        &self,
        text: &str
    ) -> Result<((i32, i32), (i32, i32)), Self::FontError>;
fn draw<E, DrawFunc: FnMut(i32, i32, BackendColor) -> Result<(), E>>(
        &self,
        text: &str,
        pos: BackendCoord,
        draw: DrawFunc
    ) -> Result<Result<(), E>, Self::FontError>; fn color(&self) -> BackendColor { ... }
fn size(&self) -> f64 { ... }
fn transform(&self) -> FontTransform { ... }
fn style(&self) -> FontStyle { ... }
fn anchor(&self) -> Pos { ... } }

The trait that abstracts a style of a text.

This is used because the the backend crate have no knowledge about how the text handling is implemented in plotters.

But the backend still wants to know some information about the font, for the backend doesn't handles text drawing, may want to call the draw method which is implemented by the plotters main crate. While for the backend that handles the text drawing, those font information provides instructions about how the text should be rendered: color, size, slant, anchor, font, etc.

This trait decouples the detailed implementaiton about the font and the backend code which wants to perfome some operation on the font.

Associated Types

type FontError: Error + Sync + Send + 'static

The error type of this text style implementation

Loading content...

Required methods

fn family(&self) -> FontFamily<'_>

fn layout_box(
    &self,
    text: &str
) -> Result<((i32, i32), (i32, i32)), Self::FontError>

fn draw<E, DrawFunc: FnMut(i32, i32, BackendColor) -> Result<(), E>>(
    &self,
    text: &str,
    pos: BackendCoord,
    draw: DrawFunc
) -> Result<Result<(), E>, Self::FontError>

Loading content...

Provided methods

fn color(&self) -> BackendColor

fn size(&self) -> f64

fn transform(&self) -> FontTransform

fn style(&self) -> FontStyle

fn anchor(&self) -> Pos

Loading content...

Implementors

Loading content...