replica-0.1.0.0: src/Replica/Internal.hs
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Replica.Internal where
import qualified Data.ByteString as B
import qualified Data.FileEmbed as FE
import Language.Haskell.TH.Syntax (Lift, lift)
instance Lift B.ByteString where
lift = FE.bsToExp
replace :: B.ByteString -> B.ByteString -> B.ByteString -> B.ByteString
replace needle with str
| Just suffix <- B.stripPrefix needle suffix' = prefix <> with <> suffix
| otherwise = error "Can't find substring"
where
(prefix, suffix') = B.breakSubstring needle str