mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 19:56:42 +01:00
thank rust for transpose and flatten
This commit is contained in:
parent
93ba611e33
commit
a52066f640
1 changed files with 35 additions and 25 deletions
|
|
@ -8,62 +8,72 @@ impl Rectangle<u16> for Rect {
|
|||
}
|
||||
|
||||
impl<R> Render<Tui> for Min<<Tui as Engine>::Unit, R> where R: Render<Tui> + Layout<Tui> {
|
||||
fn render (&self, engine: &mut Tui) -> Perhaps<Rect> {
|
||||
self.layout(engine.area())?
|
||||
.map(|area|engine.with_area(area.x(), area.y(), area.w(), area.h()))
|
||||
.map(|engine|engine.render(match self {
|
||||
fn render (&self, to: &mut Tui) -> Perhaps<Rect> {
|
||||
self.layout(to.area())?
|
||||
.map(|area|to.with_area(area.x(), area.y(), area.w(), area.h()))
|
||||
.map(|to|match self {
|
||||
Self::W(_, inner) => inner,
|
||||
Self::H(_, inner) => inner,
|
||||
Self::WH(_, _, inner) => inner,
|
||||
}))
|
||||
}.render(to))
|
||||
.transpose()
|
||||
.map(|x|x.flatten())
|
||||
}
|
||||
}
|
||||
|
||||
impl<R> Render<Tui> for Max<<Tui as Engine>::Unit, R> where R: Render<Tui> + Layout<Tui> {
|
||||
fn render (&self, engine: &mut Tui) -> Perhaps<Rect> {
|
||||
self.layout(engine.area())?
|
||||
.map(|area|engine.with_area(area.x(), area.y(), area.w(), area.h()))
|
||||
.map(|engine|engine.render(match self {
|
||||
fn render (&self, to: &mut Tui) -> Perhaps<Rect> {
|
||||
self.layout(to.area())?
|
||||
.map(|area|to.with_area(area.x(), area.y(), area.w(), area.h()))
|
||||
.map(|to|match self {
|
||||
Self::W(_, inner) => inner,
|
||||
Self::H(_, inner) => inner,
|
||||
Self::WH(_, _, inner) => inner,
|
||||
}))
|
||||
}.render(to))
|
||||
.transpose()
|
||||
.map(|x|x.flatten())
|
||||
}
|
||||
}
|
||||
|
||||
impl<R> Render<Tui> for Inset<<Tui as Engine>::Unit, R> where R: Render<Tui> + Layout<Tui> {
|
||||
fn render (&self, engine: &mut Tui) -> Perhaps<Rect> {
|
||||
self.layout(engine.area())?
|
||||
.map(|area|engine.with_area(area.x(), area.y(), area.w(), area.h()))
|
||||
.map(|engine|engine.render(match self {
|
||||
fn render (&self, to: &mut Tui) -> Perhaps<Rect> {
|
||||
self.layout(to.area())?
|
||||
.map(|area|to.with_area(area.x(), area.y(), area.w(), area.h()))
|
||||
.map(|to|match self {
|
||||
Self::W(_, inner) => inner,
|
||||
Self::H(_, inner) => inner,
|
||||
Self::WH(_, _, inner) => inner,
|
||||
}))
|
||||
}.render(to))
|
||||
.transpose()
|
||||
.map(|x|x.flatten())
|
||||
}
|
||||
}
|
||||
|
||||
impl<R> Render<Tui> for Outset<<Tui as Engine>::Unit, R> where R: Render<Tui> + Layout<Tui> {
|
||||
fn render (&self, engine: &mut Tui) -> Perhaps<Rect> {
|
||||
self.layout(engine.area())?
|
||||
.map(|area|engine.with_area(area.x(), area.y(), area.w(), area.h()))
|
||||
.map(|engine|engine.render(match self {
|
||||
fn render (&self, to: &mut Tui) -> Perhaps<Rect> {
|
||||
self.layout(to.area())?
|
||||
.map(|area|to.with_area(area.x(), area.y(), area.w(), area.h()))
|
||||
.map(|to|match self {
|
||||
Self::W(_, inner) => inner,
|
||||
Self::H(_, inner) => inner,
|
||||
Self::WH(_, _, inner) => inner,
|
||||
}))
|
||||
}.render(to))
|
||||
.transpose()
|
||||
.map(|x|x.flatten())
|
||||
}
|
||||
}
|
||||
|
||||
impl<R> Render<Tui> for Offset<<Tui as Engine>::Unit, R> where R: Render<Tui> + Layout<Tui> {
|
||||
fn render (&self, engine: &mut Tui) -> Perhaps<Rect> {
|
||||
self.layout(engine.area())?
|
||||
.map(|area|engine.with_area(area.x(), area.y(), area.w(), area.h()))
|
||||
.map(|engine|engine.render(match self {
|
||||
fn render (&self, to: &mut Tui) -> Perhaps<Rect> {
|
||||
self.layout(to.area())?
|
||||
.map(|area|to.with_area(area.x(), area.y(), area.w(), area.h()))
|
||||
.map(|to|match self {
|
||||
Self::X(_, inner) => inner,
|
||||
Self::Y(_, inner) => inner,
|
||||
Self::XY(_, _, inner) => inner,
|
||||
}))
|
||||
}.render(to))
|
||||
.transpose()
|
||||
.map(|x|x.flatten())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue