Stateful terminal frame painter.
The painter returns ANSI iodata for changed lines only after the first frame.
Summary
Types
@type t() :: %Cringe.Painter{ height: pos_integer(), previous: [String.t()], width: pos_integer() }
Functions
@spec new(pos_integer(), pos_integer()) :: t()
@spec render(t(), Cringe.Document.t() | Cringe.Frame.t()) :: {IO.chardata(), t()}