packages feed

cursor-0.3.1.0: src/Cursor/Simple/Map/KeyValue.hs

{-# LANGUAGE PatternSynonyms #-}

module Cursor.Simple.Map.KeyValue
  ( KeyValueCursor,
    pattern KVC.KeyValueCursorKey,
    pattern KVC.KeyValueCursorValue,
    KVC.makeKeyValueCursorKey,
    KVC.makeKeyValueCursorValue,
    rebuildKeyValueCursor,
    KVC.keyValueCursorSelection,
    mapKeyValueCursor,
    keyValueCursorSelectKey,
    keyValueCursorSelectValue,
    keyValueCursorToggleSelected,
    KVC.KeyValueToggle (..),
  )
where

import qualified Cursor.Map.KeyValue as KVC

type KeyValueCursor k v = KVC.KeyValueCursor k v k v

rebuildKeyValueCursor :: KeyValueCursor k v -> (k, v)
rebuildKeyValueCursor = KVC.rebuildKeyValueCursor id id

mapKeyValueCursor :: (k -> l) -> (v -> w) -> KeyValueCursor k v -> KeyValueCursor l w
mapKeyValueCursor f g = KVC.mapKeyValueCursor f g f g

keyValueCursorSelectKey :: KeyValueCursor k v -> KeyValueCursor k v
keyValueCursorSelectKey = KVC.keyValueCursorSelectKey id id

keyValueCursorSelectValue :: KeyValueCursor k v -> KeyValueCursor k v
keyValueCursorSelectValue = KVC.keyValueCursorSelectValue id id

keyValueCursorToggleSelected :: KeyValueCursor k v -> KeyValueCursor k v
keyValueCursorToggleSelected = KVC.keyValueCursorToggleSelected id id id id