module CabalGild.Unstable.Extra.ByteString where
import qualified Data.ByteString as ByteString
replace ::
ByteString.ByteString ->
ByteString.ByteString ->
ByteString.ByteString ->
ByteString.ByteString
replace :: ByteString -> ByteString -> ByteString -> ByteString
replace ByteString
needle ByteString
replacement = ByteString -> [ByteString] -> ByteString
ByteString.intercalate ByteString
replacement ([ByteString] -> ByteString)
-> (ByteString -> [ByteString]) -> ByteString -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> ByteString -> [ByteString]
splitOn ByteString
needle
splitOn ::
ByteString.ByteString ->
ByteString.ByteString ->
[ByteString.ByteString]
splitOn :: ByteString -> ByteString -> [ByteString]
splitOn ByteString
needle =
let split :: ByteString -> (ByteString, ByteString)
split = ByteString -> ByteString -> (ByteString, ByteString)
ByteString.breakSubstring ByteString
needle
go :: ByteString -> [ByteString]
go ByteString
haystack =
let (ByteString
before, ByteString
after) = ByteString -> (ByteString, ByteString)
split ByteString
haystack
in ByteString
before
ByteString -> [ByteString] -> [ByteString]
forall a. a -> [a] -> [a]
: if ByteString -> Bool
ByteString.null ByteString
after
then []
else ByteString -> [ByteString]
go (Int -> ByteString -> ByteString
ByteString.drop (ByteString -> Int
ByteString.length ByteString
needle) ByteString
after)
in ByteString -> [ByteString]
go