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 = RenderedBuffer { unRenderedBuffer :: Seq RenderedItem } deriving (Eq, Show) flatten :: RenderedBuffer -> [RenderedLine] flatten = concatMap (F.toList . RenderedItem.riLines) . F.toList . unRenderedBuffer fromList :: [RenderedItem] -> RenderedBuffer fromList = RenderedBuffer . Seq.fromList