module TextViewport.Render.RenderedBuffer where import Data.Foldable qualified as F import Data.Sequence (Seq) import Data.Sequence qualified as Seq import TextViewport.Render.RenderedItem (RenderedItem) import TextViewport.Render.RenderedItem qualified as RenderedItem import TextViewport.Render.RenderedLine (RenderedLine) newtype RenderedBuffer a = RenderedBuffer { unRenderedBuffer :: Seq (RenderedItem a) } deriving (Eq, Show) flatten :: RenderedBuffer a -> [RenderedLine a] flatten = concatMap (F.toList . RenderedItem.riLines) . F.toList . unRenderedBuffer fromList :: [RenderedItem a] -> RenderedBuffer a fromList = RenderedBuffer . Seq.fromList