summaryrefslogtreecommitdiffstats
path: root/src/TextViewport/Render/RenderedBuffer.hs
blob: cbff8cae9485dc359e4b9d005360773f80a263a8 (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 = 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