pub trait TextRenderer {
type Color: PixelColor;
// Required methods
fn draw_string<D>(
&self,
text: &str,
position: Point,
baseline: Baseline,
target: &mut D,
) -> Result<Point, D::Error>
where D: DrawTarget<Color = Self::Color>;
fn draw_whitespace<D>(
&self,
width: u32,
position: Point,
baseline: Baseline,
target: &mut D,
) -> Result<Point, D::Error>
where D: DrawTarget<Color = Self::Color>;
fn measure_string(
&self,
text: &str,
position: Point,
baseline: Baseline,
) -> TextMetrics;
fn line_height(&self) -> u32;
}
Expand description
Text renderer.
The TextRenderer
trait is used to integrate text renderers into embedded-graphics. Users should
not call it directly and instead use the functions provided by the Text
type.
Required Associated Types§
Sourcetype Color: PixelColor
type Color: PixelColor
Color type.
Required Methods§
Sourcefn draw_string<D>(
&self,
text: &str,
position: Point,
baseline: Baseline,
target: &mut D,
) -> Result<Point, D::Error>where
D: DrawTarget<Color = Self::Color>,
fn draw_string<D>(
&self,
text: &str,
position: Point,
baseline: Baseline,
target: &mut D,
) -> Result<Point, D::Error>where
D: DrawTarget<Color = Self::Color>,
Draws a string.
The method returns the start position of the next character to allow chaining of multiple draw calls.
§Implementation notes
This method must not interpret any control characters and only render a single line of text.
Any control character in the text
should be handled the same way as any other character
that isn’t included in the font.
Sourcefn draw_whitespace<D>(
&self,
width: u32,
position: Point,
baseline: Baseline,
target: &mut D,
) -> Result<Point, D::Error>where
D: DrawTarget<Color = Self::Color>,
fn draw_whitespace<D>(
&self,
width: u32,
position: Point,
baseline: Baseline,
target: &mut D,
) -> Result<Point, D::Error>where
D: DrawTarget<Color = Self::Color>,
Draws whitespace of the given width.
The method returns the start position of the next character to allow chaining of multiple draw calls.
Sourcefn measure_string(
&self,
text: &str,
position: Point,
baseline: Baseline,
) -> TextMetrics
fn measure_string( &self, text: &str, position: Point, baseline: Baseline, ) -> TextMetrics
Returns the text metrics for a string.
§Implementation notes
The returned bounding box must be independent of the text color. This is different to the
Dimensions
trait, which should return a zero sized bounding box for completely transparent
drawables. But this behavior would make it impossible to correctly layout text which
contains a mixture of transparent and non transparent words.
This method must not interpret any control characters and only render a single line of text.
Any control character in the text
should be handled the same way as any other character
that isn’t included in the font.
Sourcefn line_height(&self) -> u32
fn line_height(&self) -> u32
Returns the default line height.
The line height is defined as the vertical distance between the baseline of two adjacent lines in pixels.
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.