cursor-gen-0.3.0.0: src/Cursor/Text/Gen.hs
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Cursor.Text.Gen
( genSafeChar
, genTextCursorChar
, textCursorWithGen
, textCursorWithIndex0
) where
import Test.QuickCheck
import Data.GenValidity
import Data.GenValidity.Text ()
import Cursor.Text
import Cursor.Types
import Cursor.List.Gen
instance GenUnchecked TextCursor
instance GenValid TextCursor where
genValid = TextCursor <$> listCursorWithGen genTextCursorChar
shrinkValid = shrinkValidStructurally
genSafeChar :: Gen Char
genSafeChar = choose (minBound, maxBound) `suchThat` isSafeChar
genTextCursorChar :: Gen Char
genTextCursorChar = genSafeChar `suchThat` (/= '\n')
textCursorWithGen :: Gen Char -> Gen TextCursor
textCursorWithGen gen = TextCursor <$> listCursorWithGen gen
textCursorWithIndex0 :: Gen Char -> Gen TextCursor
textCursorWithIndex0 gen = TextCursor <$> listCursorWithIndex0 gen