diff options
| author | tv <tv@krebsco.de> | 2026-03-09 02:25:18 +0100 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-03-09 02:26:50 +0100 |
| commit | 230e538e41360f2018db9a8b5274402d0b3200b6 (patch) | |
| tree | 3c7cb9e360850d0a404087a66bfb860441905a9b /src/TextViewport/Render/RenderBuffer.hs | |
| parent | fdf2c5436dfea4a30af445059e77a54e14b64752 (diff) | |
generalize Item from Text to Textual
Diffstat (limited to 'src/TextViewport/Render/RenderBuffer.hs')
| -rw-r--r-- | src/TextViewport/Render/RenderBuffer.hs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/TextViewport/Render/RenderBuffer.hs b/src/TextViewport/Render/RenderBuffer.hs index a1122a4..fb782f5 100644 --- a/src/TextViewport/Render/RenderBuffer.hs +++ b/src/TextViewport/Render/RenderBuffer.hs @@ -1,13 +1,15 @@ module TextViewport.Render.RenderBuffer where +import Data.Hashable (Hashable) import Data.Sequence qualified as Seq +import Data.Sequences (Index, Textual) import TextViewport.Buffer.Buffer (Buffer(..)) import TextViewport.Render.CachedRender import TextViewport.Render.RenderCache import TextViewport.Render.RenderItem (renderItem) import TextViewport.Render.RenderedBuffer -renderBuffer :: Int -> Buffer -> RenderCache -> (RenderCache, RenderedBuffer) +renderBuffer :: (Hashable t, Textual t, Index t ~ Int) => Int -> Buffer t -> RenderCache t -> (RenderCache t, RenderedBuffer t) renderBuffer width (Buffer items) (RenderCache cache) = let n = Seq.length items go i (cAcc, rAcc) @@ -21,7 +23,7 @@ renderBuffer width (Buffer items) (RenderCache cache) = in go (i + 1) (cAcc', rAcc') in go 0 (cache, Seq.empty) -updateRenderedItem :: Int -> Int -> Buffer -> RenderCache -> RenderedBuffer -> (RenderCache, RenderedBuffer) +updateRenderedItem :: (Hashable t, Textual t, Index t ~ Int) => Int -> Int -> Buffer t -> RenderCache t -> RenderedBuffer t -> (RenderCache t, RenderedBuffer t) updateRenderedItem width itemIx (Buffer items) (RenderCache cache) (RenderedBuffer rb) = let item = Seq.index items itemIx mOld = Seq.index cache itemIx |
