module HaskellWorks.Data.Json.Simple.Cursor.Internal.ToIbBp where

import qualified Data.ByteString                                    as BS
import qualified HaskellWorks.Data.Json.Simple.Cursor.Internal.IbBp as Z
import qualified HaskellWorks.Data.Json.Simple.Cursor.SemiIndex     as J

class ToIbBp a where
  toIbBp :: a -> Z.IbBp

instance ToIbBp BS.ByteString where
  toIbBp :: ByteString -> IbBp
toIbBp ByteString
bs = Vector Word64 -> Vector Word64 -> IbBp
Z.IbBp Vector Word64
ib Vector Word64
bp
    where J.SemiIndex Context
_ Vector Word64
ib Vector Word64
bp = ByteString -> SemiIndex (Vector Word64)
J.buildSemiIndex ByteString
bs