2019-07-20 19:12:31 +02:00
|
|
|
use crate::Layout;
|
|
|
|
|
|
|
|
|
|
pub trait Renderer {
|
|
|
|
|
type Color: Copy;
|
|
|
|
|
|
|
|
|
|
/// Explains the [`Layout`] of an [`Element`] for debugging purposes.
|
|
|
|
|
///
|
|
|
|
|
/// This will be called when [`Element::explain`] has been used. It should
|
2019-08-24 03:55:07 +02:00
|
|
|
/// _explain_ the given [`Layout`] graphically.
|
|
|
|
|
///
|
|
|
|
|
/// A common approach consists in recursively rendering the bounds of the
|
|
|
|
|
/// [`Layout`] and its children.
|
2019-07-20 19:12:31 +02:00
|
|
|
///
|
|
|
|
|
/// [`Layout`]: struct.Layout.html
|
|
|
|
|
/// [`Element`]: struct.Element.html
|
|
|
|
|
/// [`Element::explain`]: struct.Element.html#method.explain
|
|
|
|
|
fn explain(&mut self, layout: &Layout<'_>, color: Self::Color);
|
|
|
|
|
}
|