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