summaryrefslogtreecommitdiffstats
path: root/src/TextViewport/Render/RenderedBuffer.hs
blob: 9b8fa6118219abb4dbb079403a27e3ca534b41d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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