module StrBldr.ByteString.Strict ( Str , Bldr , fromBuilder , toBuilder , splitAt , null , allMatches ) where import qualified Data.ByteString as S (ByteString) import qualified Data.ByteString as S.Byt import Data.ByteString.Builder (Builder) import qualified Data.ByteString.Builder as Byt.Bldr import qualified Data.ByteString.Lazy as L.Byt import Text.Regex.PCRE.Heavy (Regex) import qualified Text.Regex.PCRE.Heavy as Pcre.H import Prelude hiding (splitAt, null) type Str = S.ByteString type Bldr = Builder toBuilder :: Str -> Bldr toBuilder = Byt.Bldr.byteString fromBuilder :: Bldr -> Str fromBuilder = L.Byt.toStrict . Byt.Bldr.toLazyByteString null :: Str -> Bool null = S.Byt.null splitAt :: Int -> Str -> (Str, Str) splitAt = S.Byt.splitAt allMatches :: Regex -> Str -> [((Int, Int), [(Int, Int)])] allMatches = Pcre.H.scanRanges