Merge pull request #150 from hecrj/refactor/move-renderer-traits

Move `Debugger` and `Windowed` traits
This commit is contained in:
Héctor Ramón 2020-01-10 19:10:57 +01:00 committed by GitHub
commit 9b8f86f843
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 27 additions and 29 deletions

View file

@ -0,0 +1,26 @@
use crate::{Color, Layout, Point, Renderer, Widget};
/// A renderer able to graphically explain a [`Layout`].
///
/// [`Layout`]: struct.Layout.html
pub trait Debugger: Renderer {
/// Explains the [`Layout`] of an [`Element`] for debugging purposes.
///
/// This will be called when [`Element::explain`] has been used. It should
/// _explain_ the given [`Layout`] graphically.
///
/// A common approach consists in recursively rendering the bounds of the
/// [`Layout`] and its children.
///
/// [`Layout`]: struct.Layout.html
/// [`Element`]: ../struct.Element.html
/// [`Element::explain`]: ../struct.Element.html#method.explain
fn explain<Message>(
&mut self,
defaults: &Self::Defaults,
widget: &dyn Widget<Message, Self>,
layout: Layout<'_>,
cursor_position: Point,
color: Color,
) -> Self::Output;
}