{-# LANGUAGE DataKinds     #-}
{-# LANGUAGE DeriveGeneric #-}

module HaskellWorks.Simd.Cli.CutCursor
  ( CutCursor(..)
  ) where

import Data.Word
import GHC.Generics

import qualified Data.ByteString.Lazy as LBS
import qualified Data.Vector.Storable as DVS

data CutCursor = CutCursor
  { CutCursor -> ByteString
text     :: !LBS.ByteString
  , CutCursor -> [Vector Word64]
markers  :: ![DVS.Vector Word64]
  , CutCursor -> [Vector Word64]
newlines :: ![DVS.Vector Word64]
  , CutCursor -> Word64
position :: !Word64
  } deriving (forall x. CutCursor -> Rep CutCursor x)
-> (forall x. Rep CutCursor x -> CutCursor) -> Generic CutCursor
forall x. Rep CutCursor x -> CutCursor
forall x. CutCursor -> Rep CutCursor x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CutCursor x -> CutCursor
$cfrom :: forall x. CutCursor -> Rep CutCursor x
Generic