fatui 0.1.0

a silly little framework for terminal user interfaces
Documentation
//! split [`Frame`]s into pieces
//!
//! at its most basic level, a `Frame` is a character grid with some associated input.
//! that's not a very useful abstraction to work with, though --
//! especially not for a ui library.
//!
//! so instead, you start with a whole frame,
//! then split it into sub-frames, then sub-sub-frames,
//! and once you have your layout, you populate each sub-*-frame
//! with a [`Component`](crate::Component).

use crate::Frame;

/// a strategy for splitting a [`Frame`] into sub-frames
pub trait Splitter<'b> {
	/// the specific type being returned
	type Res: 'b;

	/// perform the splitting
	fn split<I>(f: Frame<'b, I>) -> Self::Res;
}