summaryrefslogtreecommitdiffstats
path: root/src/TextViewport/Buffer/Buffer.hs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-03-09 02:25:18 +0100
committertv <tv@krebsco.de>2026-03-09 02:26:50 +0100
commit230e538e41360f2018db9a8b5274402d0b3200b6 (patch)
tree3c7cb9e360850d0a404087a66bfb860441905a9b /src/TextViewport/Buffer/Buffer.hs
parentfdf2c5436dfea4a30af445059e77a54e14b64752 (diff)
generalize Item from Text to Textual
Diffstat (limited to 'src/TextViewport/Buffer/Buffer.hs')
-rw-r--r--src/TextViewport/Buffer/Buffer.hs14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/TextViewport/Buffer/Buffer.hs b/src/TextViewport/Buffer/Buffer.hs
index 7b9582f..62ce232 100644
--- a/src/TextViewport/Buffer/Buffer.hs
+++ b/src/TextViewport/Buffer/Buffer.hs
@@ -3,33 +3,33 @@ module TextViewport.Buffer.Buffer where
import Data.Sequence qualified as Seq
import TextViewport.Buffer.Item (Item)
-newtype Buffer = Buffer { unBuffer :: Seq.Seq Item }
+newtype Buffer a = Buffer { unBuffer :: Seq.Seq (Item a) }
deriving (Eq, Show)
-- | Build a buffer from a list
-fromList :: [Item] -> Buffer
+fromList :: [Item a] -> Buffer a
fromList xs = Buffer (Seq.fromList xs)
-- | Modify an item at index
-modifyItem :: Int -> (Item -> Item) -> Buffer -> Buffer
+modifyItem :: Int -> (Item a -> Item a) -> Buffer a -> Buffer a
modifyItem ix f (Buffer xs) =
Buffer (Seq.adjust' f ix xs)
-- | Insert an item
-insertItem :: Int -> Item -> Buffer -> Buffer
+insertItem :: Int -> Item a -> Buffer a -> Buffer a
insertItem ix x (Buffer xs) =
Buffer (Seq.insertAt ix x xs)
-- | Delete an item
-deleteItem :: Int -> Buffer -> Buffer
+deleteItem :: Int -> Buffer a -> Buffer a
deleteItem ix (Buffer xs) =
Buffer (Seq.deleteAt ix xs)
-- | Append an item
-appendItem :: Item -> Buffer -> Buffer
+appendItem :: Item a -> Buffer a -> Buffer a
appendItem x (Buffer xs) =
Buffer (xs Seq.|> x)
-- | Extract underlying Seq (if needed)
-toSeq :: Buffer -> Seq.Seq Item
+toSeq :: Buffer a -> Seq.Seq (Item a)
toSeq (Buffer xs) = xs