{-# LANGUAGE CPP #-}
{-# LANGUAGE KindSignatures #-}
module System.OsString.Internal.Compat
(
encodeUtf
, unsafeEncodeUtf
, encodeWith
, encodeFS
#if MIN_VERSION_os_string(2,0,5)
, encodeLE
#endif
, osstr
, empty
, singleton
, pack
, fromBytes
#if MIN_VERSION_os_string(2,0,8)
, fromShortBytes
#endif
, decodeUtf
, decodeWith
, decodeFS
#if MIN_VERSION_os_string(2,0,5)
, decodeLE
#endif
, unpack
, unsafeFromChar
, toChar
, snoc
, cons
, last
, tail
, uncons
, head
, init
, unsnoc
, null
, length
, lengthBytes
, map
, reverse
, intercalate
, foldl
, foldl'
, foldl1
, foldl1'
, foldr
, foldr'
, foldr1
, foldr1'
, all
, any
, concat
, replicate
, unfoldr
, unfoldrN
, take
, takeEnd
, takeWhileEnd
, takeWhile
, drop
, dropEnd
, dropWhileEnd
, dropWhile
, break
, breakEnd
, span
, spanEnd
, splitAt
, split
, splitWith
, stripSuffix
, stripPrefix
, isInfixOf
, isPrefixOf
, isSuffixOf
, breakSubstring
, elem
, find
, filter
, partition
, index
, indexMaybe
, (!?)
, elemIndex
, elemIndices
, count
, findIndex
, findIndices
) where
import System.OsString.Internal.Types.Compat
#if MIN_VERSION_filepath(1,5,0)
import Prelude (Int)
import Data.Coerce (coerce)
import "os-string" System.OsString.Internal hiding (length)
#if defined(mingw32_HOST_OS)
import System.OsString.Windows.Compat qualified as PF
#else
import System.OsString.Posix.Compat qualified as PF
#endif
length :: OsString -> Int
length = coerce PF.length
lengthBytes :: OsString -> Int
lengthBytes = coerce PF.lengthBytes
#else
import Data.Kind (Type)
import Data.ByteString.Short (ShortByteString(..))
import Data.Coerce
import "filepath" System.OsString.Internal
( encodeUtf
, encodeWith
, fromBytes
, osstr
, pack
, decodeUtf
, decodeWith
, decodeFS
, unpack
, unsafeFromChar
)
import "os-string" System.OsString.Internal.Types qualified as OST
import "os-string" System.OsString.Internal qualified as OS
import "filepath" System.OsString.Internal qualified as Old
import System.OsString.Internal.Types.Compat
#if defined(mingw32_HOST_OS)
import System.OsString.Windows.Compat qualified as PF
#else
import System.OsString.Posix.Compat qualified as PF
#endif
import Control.Monad.Catch (MonadThrow)
import GHC.Stack (HasCallStack)
import Prelude (Bool, Int, Maybe, String, IO, Char, (<$>))
unsafeEncodeUtf :: HasCallStack => String -> OsString
unsafeEncodeUtf :: HasCallStack => String -> OsString
unsafeEncodeUtf = (String -> OsString) -> String -> OsString
forall a b. Coercible a b => a -> b
coerce HasCallStack => String -> OsString
String -> OsString
OS.unsafeEncodeUtf
encodeFS :: String -> IO OsString
encodeFS :: String -> IO OsString
encodeFS = (String -> IO OsString) -> String -> IO OsString
forall a b. Coercible a b => a -> b
coerce String -> IO OsString
OS.encodeFS
#if MIN_VERSION_os_string(2,0,5)
encodeLE :: String -> IO OsString
encodeLE :: String -> IO OsString
encodeLE = (String -> IO OsString) -> String -> IO OsString
forall a b. Coercible a b => a -> b
coerce String -> IO OsString
OS.encodeLE
#endif
#if MIN_VERSION_os_string(2,0,5)
decodeLE :: OsString -> IO String
decodeLE :: OsString -> IO String
decodeLE = (OsString -> IO String) -> OsString -> IO String
forall a b. Coercible a b => a -> b
coerce OsString -> IO String
OS.decodeLE
#endif
empty :: OsString
empty :: OsString
empty = OsString -> OsString
forall a b. Coercible a b => a -> b
coerce OsString
OS.empty
singleton :: OsChar -> OsString
singleton :: OsChar -> OsString
singleton = (OsChar -> OsString) -> OsChar -> OsString
forall a b. Coercible a b => a -> b
coerce OsChar -> OsString
OS.singleton
toChar :: OsChar -> Char
toChar :: OsChar -> Char
toChar = (OsChar -> Char) -> OsChar -> Char
forall a b. Coercible a b => a -> b
coerce OsChar -> Char
OS.toChar
snoc :: OsString -> OsChar -> OsString
snoc :: OsString -> OsChar -> OsString
snoc = (OsString -> OsChar -> OsString) -> OsString -> OsChar -> OsString
forall a b. Coercible a b => a -> b
coerce OsString -> OsChar -> OsString
OS.snoc
cons :: OsChar -> OsString -> OsString
cons :: OsChar -> OsString -> OsString
cons = (OsChar -> OsString -> OsString) -> OsChar -> OsString -> OsString
forall a b. Coercible a b => a -> b
coerce OsChar -> OsString -> OsString
OS.cons
last :: HasCallStack => OsString -> OsChar
last :: HasCallStack => OsString -> OsChar
last = (OsString -> OsChar) -> OsString -> OsChar
forall a b. Coercible a b => a -> b
coerce HasCallStack => OsString -> OsChar
OsString -> OsChar
OS.last
tail :: HasCallStack => OsString -> OsString
tail :: HasCallStack => OsString -> OsString
tail = (OsString -> OsString) -> OsString -> OsString
forall a b. Coercible a b => a -> b
coerce HasCallStack => OsString -> OsString
OsString -> OsString
OS.tail
uncons :: OsString -> Maybe (OsChar, OsString)
uncons :: OsString -> Maybe (OsChar, OsString)
uncons = (OsString -> Maybe (OsChar, OsString))
-> OsString -> Maybe (OsChar, OsString)
forall a b. Coercible a b => a -> b
coerce OsString -> Maybe (OsChar, OsString)
OS.uncons
head :: HasCallStack => OsString -> OsChar
head :: HasCallStack => OsString -> OsChar
head = (OsString -> OsChar) -> OsString -> OsChar
forall a b. Coercible a b => a -> b
coerce HasCallStack => OsString -> OsChar
OsString -> OsChar
OS.head
init :: HasCallStack => OsString -> OsString
init :: HasCallStack => OsString -> OsString
init = (OsString -> OsString) -> OsString -> OsString
forall a b. Coercible a b => a -> b
coerce HasCallStack => OsString -> OsString
OsString -> OsString
OS.init
unsnoc :: OsString -> Maybe (OsString, OsChar)
unsnoc :: OsString -> Maybe (OsString, OsChar)
unsnoc = (OsString -> Maybe (OsString, OsChar))
-> OsString -> Maybe (OsString, OsChar)
forall a b. Coercible a b => a -> b
coerce OsString -> Maybe (OsString, OsChar)
OS.unsnoc
null :: OsString -> Bool
null :: OsString -> Bool
null = (OsString -> Bool) -> OsString -> Bool
forall a b. Coercible a b => a -> b
coerce OsString -> Bool
OS.null
length :: OsString -> Int
length :: OsString -> Int
length = (WindowsString -> Int) -> OsString -> Int
forall a b. Coercible a b => a -> b
coerce WindowsString -> Int
PF.length
lengthBytes :: OsString -> Int
lengthBytes :: OsString -> Int
lengthBytes = (WindowsString -> Int) -> OsString -> Int
forall a b. Coercible a b => a -> b
coerce WindowsString -> Int
PF.lengthBytes
map :: (OsChar -> OsChar) -> OsString -> OsString
map :: (OsChar -> OsChar) -> OsString -> OsString
map = ((OsChar -> OsChar) -> OsString -> OsString)
-> (OsChar -> OsChar) -> OsString -> OsString
forall a b. Coercible a b => a -> b
coerce (OsChar -> OsChar) -> OsString -> OsString
OS.map
reverse :: OsString -> OsString
reverse :: OsString -> OsString
reverse = (OsString -> OsString) -> OsString -> OsString
forall a b. Coercible a b => a -> b
coerce OsString -> OsString
OS.reverse
intercalate :: OsString -> [OsString] -> OsString
intercalate :: OsString -> [OsString] -> OsString
intercalate = (OsString -> [OsString] -> OsString)
-> OsString -> [OsString] -> OsString
forall a b. Coercible a b => a -> b
coerce OsString -> [OsString] -> OsString
OS.intercalate
foldl :: forall a. (a -> OsChar -> a) -> a -> OsString -> a
foldl :: forall a. (a -> OsChar -> a) -> a -> OsString -> a
foldl = ((a -> OsChar -> a) -> a -> OsString -> a)
-> (a -> OsChar -> a) -> a -> OsString -> a
forall a b. Coercible a b => a -> b
coerce (forall a. (a -> OsChar -> a) -> a -> OsString -> a
OS.foldl @a)
foldl' :: forall a. (a -> OsChar -> a) -> a -> OsString -> a
foldl' :: forall a. (a -> OsChar -> a) -> a -> OsString -> a
foldl' = ((a -> OsChar -> a) -> a -> OsString -> a)
-> (a -> OsChar -> a) -> a -> OsString -> a
forall a b. Coercible a b => a -> b
coerce (forall a. (a -> OsChar -> a) -> a -> OsString -> a
OS.foldl' @a)
foldl1 :: (OsChar -> OsChar -> OsChar) -> OsString -> OsChar
foldl1 :: (OsChar -> OsChar -> OsChar) -> OsString -> OsChar
foldl1 = ((OsChar -> OsChar -> OsChar) -> OsString -> OsChar)
-> (OsChar -> OsChar -> OsChar) -> OsString -> OsChar
forall a b. Coercible a b => a -> b
coerce (OsChar -> OsChar -> OsChar) -> OsString -> OsChar
OS.foldl1
foldl1' :: (OsChar -> OsChar -> OsChar) -> OsString -> OsChar
foldl1' :: (OsChar -> OsChar -> OsChar) -> OsString -> OsChar
foldl1' = ((OsChar -> OsChar -> OsChar) -> OsString -> OsChar)
-> (OsChar -> OsChar -> OsChar) -> OsString -> OsChar
forall a b. Coercible a b => a -> b
coerce (OsChar -> OsChar -> OsChar) -> OsString -> OsChar
OS.foldl1'
foldr :: forall a. (OsChar -> a -> a) -> a -> OsString -> a
foldr :: forall a. (OsChar -> a -> a) -> a -> OsString -> a
foldr = ((OsChar -> a -> a) -> a -> OsString -> a)
-> (OsChar -> a -> a) -> a -> OsString -> a
forall a b. Coercible a b => a -> b
coerce (forall a. (OsChar -> a -> a) -> a -> OsString -> a
OS.foldr @a)
foldr' :: forall a. (OsChar -> a -> a) -> a -> OsString -> a
foldr' :: forall a. (OsChar -> a -> a) -> a -> OsString -> a
foldr' = ((OsChar -> a -> a) -> a -> OsString -> a)
-> (OsChar -> a -> a) -> a -> OsString -> a
forall a b. Coercible a b => a -> b
coerce (forall a. (OsChar -> a -> a) -> a -> OsString -> a
OS.foldr' @a)
foldr1 :: (OsChar -> OsChar -> OsChar) -> OsString -> OsChar
foldr1 :: (OsChar -> OsChar -> OsChar) -> OsString -> OsChar
foldr1 = ((OsChar -> OsChar -> OsChar) -> OsString -> OsChar)
-> (OsChar -> OsChar -> OsChar) -> OsString -> OsChar
forall a b. Coercible a b => a -> b
coerce (OsChar -> OsChar -> OsChar) -> OsString -> OsChar
OS.foldr1
foldr1' :: (OsChar -> OsChar -> OsChar) -> OsString -> OsChar
foldr1' :: (OsChar -> OsChar -> OsChar) -> OsString -> OsChar
foldr1' = ((OsChar -> OsChar -> OsChar) -> OsString -> OsChar)
-> (OsChar -> OsChar -> OsChar) -> OsString -> OsChar
forall a b. Coercible a b => a -> b
coerce (OsChar -> OsChar -> OsChar) -> OsString -> OsChar
OS.foldr1'
all :: (OsChar -> Bool) -> OsString -> Bool
all :: (OsChar -> Bool) -> OsString -> Bool
all = ((OsChar -> Bool) -> OsString -> Bool)
-> (OsChar -> Bool) -> OsString -> Bool
forall a b. Coercible a b => a -> b
coerce (OsChar -> Bool) -> OsString -> Bool
OS.all
any :: (OsChar -> Bool) -> OsString -> Bool
any :: (OsChar -> Bool) -> OsString -> Bool
any = ((OsChar -> Bool) -> OsString -> Bool)
-> (OsChar -> Bool) -> OsString -> Bool
forall a b. Coercible a b => a -> b
coerce (OsChar -> Bool) -> OsString -> Bool
OS.any
concat :: [OsString] -> OsString
concat :: [OsString] -> OsString
concat = ([OsString] -> OsString) -> [OsString] -> OsString
forall a b. Coercible a b => a -> b
coerce [OsString] -> OsString
OS.concat
replicate :: Int -> OsChar -> OsString
replicate :: Int -> OsChar -> OsString
replicate = (Int -> OsChar -> OsString) -> Int -> OsChar -> OsString
forall a b. Coercible a b => a -> b
coerce Int -> OsChar -> OsString
OS.replicate
unfoldr :: forall a. (a -> Maybe (OsChar, a)) -> a -> OsString
unfoldr :: forall a. (a -> Maybe (OsChar, a)) -> a -> OsString
unfoldr = ((a -> Maybe (OsChar, a)) -> a -> OsString)
-> (a -> Maybe (OsChar, a)) -> a -> OsString
forall a b. Coercible a b => a -> b
coerce (forall a. (a -> Maybe (OsChar, a)) -> a -> OsString
OS.unfoldr @a)
unfoldrN :: forall a. Int -> (a -> Maybe (OsChar, a)) -> a -> (OsString, Maybe a)
unfoldrN :: forall a.
Int -> (a -> Maybe (OsChar, a)) -> a -> (OsString, Maybe a)
unfoldrN = (Int -> (a -> Maybe (OsChar, a)) -> a -> (OsString, Maybe a))
-> Int -> (a -> Maybe (OsChar, a)) -> a -> (OsString, Maybe a)
forall a b. Coercible a b => a -> b
coerce (forall a.
Int -> (a -> Maybe (OsChar, a)) -> a -> (OsString, Maybe a)
OS.unfoldrN @a)
take :: Int -> OsString -> OsString
take :: Int -> OsString -> OsString
take = (Int -> OsString -> OsString) -> Int -> OsString -> OsString
forall a b. Coercible a b => a -> b
coerce Int -> OsString -> OsString
OS.take
takeEnd :: Int -> OsString -> OsString
takeEnd :: Int -> OsString -> OsString
takeEnd = (Int -> OsString -> OsString) -> Int -> OsString -> OsString
forall a b. Coercible a b => a -> b
coerce Int -> OsString -> OsString
OS.takeEnd
takeWhileEnd :: (OsChar -> Bool) -> OsString -> OsString
takeWhileEnd :: (OsChar -> Bool) -> OsString -> OsString
takeWhileEnd = ((OsChar -> Bool) -> OsString -> OsString)
-> (OsChar -> Bool) -> OsString -> OsString
forall a b. Coercible a b => a -> b
coerce (OsChar -> Bool) -> OsString -> OsString
OS.takeWhileEnd
takeWhile :: (OsChar -> Bool) -> OsString -> OsString
takeWhile :: (OsChar -> Bool) -> OsString -> OsString
takeWhile = ((OsChar -> Bool) -> OsString -> OsString)
-> (OsChar -> Bool) -> OsString -> OsString
forall a b. Coercible a b => a -> b
coerce (OsChar -> Bool) -> OsString -> OsString
OS.takeWhile
drop :: Int -> OsString -> OsString
drop :: Int -> OsString -> OsString
drop = (Int -> OsString -> OsString) -> Int -> OsString -> OsString
forall a b. Coercible a b => a -> b
coerce Int -> OsString -> OsString
OS.drop
dropEnd :: Int -> OsString -> OsString
dropEnd :: Int -> OsString -> OsString
dropEnd = (Int -> OsString -> OsString) -> Int -> OsString -> OsString
forall a b. Coercible a b => a -> b
coerce Int -> OsString -> OsString
OS.dropEnd
dropWhile :: (OsChar -> Bool) -> OsString -> OsString
dropWhile :: (OsChar -> Bool) -> OsString -> OsString
dropWhile = ((OsChar -> Bool) -> OsString -> OsString)
-> (OsChar -> Bool) -> OsString -> OsString
forall a b. Coercible a b => a -> b
coerce (OsChar -> Bool) -> OsString -> OsString
OS.dropWhile
dropWhileEnd :: (OsChar -> Bool) -> OsString -> OsString
dropWhileEnd :: (OsChar -> Bool) -> OsString -> OsString
dropWhileEnd = ((OsChar -> Bool) -> OsString -> OsString)
-> (OsChar -> Bool) -> OsString -> OsString
forall a b. Coercible a b => a -> b
coerce (OsChar -> Bool) -> OsString -> OsString
OS.dropWhileEnd
breakEnd :: (OsChar -> Bool) -> OsString -> (OsString, OsString)
breakEnd :: (OsChar -> Bool) -> OsString -> (OsString, OsString)
breakEnd = ((OsChar -> Bool) -> OsString -> (OsString, OsString))
-> (OsChar -> Bool) -> OsString -> (OsString, OsString)
forall a b. Coercible a b => a -> b
coerce (OsChar -> Bool) -> OsString -> (OsString, OsString)
OS.breakEnd
break :: (OsChar -> Bool) -> OsString -> (OsString, OsString)
break :: (OsChar -> Bool) -> OsString -> (OsString, OsString)
break = ((OsChar -> Bool) -> OsString -> (OsString, OsString))
-> (OsChar -> Bool) -> OsString -> (OsString, OsString)
forall a b. Coercible a b => a -> b
coerce (OsChar -> Bool) -> OsString -> (OsString, OsString)
OS.break
span :: (OsChar -> Bool) -> OsString -> (OsString, OsString)
span :: (OsChar -> Bool) -> OsString -> (OsString, OsString)
span = ((OsChar -> Bool) -> OsString -> (OsString, OsString))
-> (OsChar -> Bool) -> OsString -> (OsString, OsString)
forall a b. Coercible a b => a -> b
coerce (OsChar -> Bool) -> OsString -> (OsString, OsString)
OS.span
spanEnd :: (OsChar -> Bool) -> OsString -> (OsString, OsString)
spanEnd :: (OsChar -> Bool) -> OsString -> (OsString, OsString)
spanEnd = ((OsChar -> Bool) -> OsString -> (OsString, OsString))
-> (OsChar -> Bool) -> OsString -> (OsString, OsString)
forall a b. Coercible a b => a -> b
coerce (OsChar -> Bool) -> OsString -> (OsString, OsString)
OS.spanEnd
splitAt :: Int -> OsString -> (OsString, OsString)
splitAt :: Int -> OsString -> (OsString, OsString)
splitAt = (Int -> OsString -> (OsString, OsString))
-> Int -> OsString -> (OsString, OsString)
forall a b. Coercible a b => a -> b
coerce Int -> OsString -> (OsString, OsString)
OS.splitAt
split :: OsChar -> OsString -> [OsString]
split :: OsChar -> OsString -> [OsString]
split = (OsChar -> OsString -> [OsString])
-> OsChar -> OsString -> [OsString]
forall a b. Coercible a b => a -> b
coerce OsChar -> OsString -> [OsString]
OS.split
splitWith :: (OsChar -> Bool) -> OsString -> [OsString]
splitWith :: (OsChar -> Bool) -> OsString -> [OsString]
splitWith = ((OsChar -> Bool) -> OsString -> [OsString])
-> (OsChar -> Bool) -> OsString -> [OsString]
forall a b. Coercible a b => a -> b
coerce (OsChar -> Bool) -> OsString -> [OsString]
OS.splitWith
stripSuffix :: OsString -> OsString -> Maybe OsString
stripSuffix :: OsString -> OsString -> Maybe OsString
stripSuffix = (OsString -> OsString -> Maybe OsString)
-> OsString -> OsString -> Maybe OsString
forall a b. Coercible a b => a -> b
coerce OsString -> OsString -> Maybe OsString
OS.stripSuffix
stripPrefix :: OsString -> OsString -> Maybe OsString
stripPrefix :: OsString -> OsString -> Maybe OsString
stripPrefix = (OsString -> OsString -> Maybe OsString)
-> OsString -> OsString -> Maybe OsString
forall a b. Coercible a b => a -> b
coerce OsString -> OsString -> Maybe OsString
OS.stripPrefix
isInfixOf :: OsString -> OsString -> Bool
isInfixOf :: OsString -> OsString -> Bool
isInfixOf = (OsString -> OsString -> Bool) -> OsString -> OsString -> Bool
forall a b. Coercible a b => a -> b
coerce OsString -> OsString -> Bool
OS.isInfixOf
isPrefixOf :: OsString -> OsString -> Bool
isPrefixOf :: OsString -> OsString -> Bool
isPrefixOf = (OsString -> OsString -> Bool) -> OsString -> OsString -> Bool
forall a b. Coercible a b => a -> b
coerce OsString -> OsString -> Bool
OS.isPrefixOf
isSuffixOf :: OsString -> OsString -> Bool
isSuffixOf :: OsString -> OsString -> Bool
isSuffixOf = (OsString -> OsString -> Bool) -> OsString -> OsString -> Bool
forall a b. Coercible a b => a -> b
coerce OsString -> OsString -> Bool
OS.isSuffixOf
breakSubstring :: OsString -> OsString -> (OsString, OsString)
breakSubstring :: OsString -> OsString -> (OsString, OsString)
breakSubstring = (OsString -> OsString -> (OsString, OsString))
-> OsString -> OsString -> (OsString, OsString)
forall a b. Coercible a b => a -> b
coerce OsString -> OsString -> (OsString, OsString)
OS.breakSubstring
elem :: OsChar -> OsString -> Bool
elem :: OsChar -> OsString -> Bool
elem = (OsChar -> OsString -> Bool) -> OsChar -> OsString -> Bool
forall a b. Coercible a b => a -> b
coerce OsChar -> OsString -> Bool
OS.elem
find :: (OsChar -> Bool) -> OsString -> Maybe OsChar
find :: (OsChar -> Bool) -> OsString -> Maybe OsChar
find = ((OsChar -> Bool) -> OsString -> Maybe OsChar)
-> (OsChar -> Bool) -> OsString -> Maybe OsChar
forall a b. Coercible a b => a -> b
coerce (OsChar -> Bool) -> OsString -> Maybe OsChar
OS.find
filter :: (OsChar -> Bool) -> OsString -> OsString
filter :: (OsChar -> Bool) -> OsString -> OsString
filter = ((OsChar -> Bool) -> OsString -> OsString)
-> (OsChar -> Bool) -> OsString -> OsString
forall a b. Coercible a b => a -> b
coerce (OsChar -> Bool) -> OsString -> OsString
OS.filter
partition :: (OsChar -> Bool) -> OsString -> (OsString, OsString)
partition :: (OsChar -> Bool) -> OsString -> (OsString, OsString)
partition = ((OsChar -> Bool) -> OsString -> (OsString, OsString))
-> (OsChar -> Bool) -> OsString -> (OsString, OsString)
forall a b. Coercible a b => a -> b
coerce (OsChar -> Bool) -> OsString -> (OsString, OsString)
OS.partition
index :: HasCallStack => OsString -> Int -> OsChar
index :: HasCallStack => OsString -> Int -> OsChar
index = (OsString -> Int -> OsChar) -> OsString -> Int -> OsChar
forall a b. Coercible a b => a -> b
coerce HasCallStack => OsString -> Int -> OsChar
OsString -> Int -> OsChar
OS.index
indexMaybe :: OsString -> Int -> Maybe OsChar
indexMaybe :: OsString -> Int -> Maybe OsChar
indexMaybe = (OsString -> Int -> Maybe OsChar)
-> OsString -> Int -> Maybe OsChar
forall a b. Coercible a b => a -> b
coerce OsString -> Int -> Maybe OsChar
OS.indexMaybe
(!?) :: OsString -> Int -> Maybe OsChar
!? :: OsString -> Int -> Maybe OsChar
(!?) = OsString -> Int -> Maybe OsChar
indexMaybe
elemIndex :: OsChar -> OsString -> Maybe Int
elemIndex :: OsChar -> OsString -> Maybe Int
elemIndex = (OsChar -> OsString -> Maybe Int)
-> OsChar -> OsString -> Maybe Int
forall a b. Coercible a b => a -> b
coerce OsChar -> OsString -> Maybe Int
OS.elemIndex
elemIndices :: OsChar -> OsString -> [Int]
elemIndices :: OsChar -> OsString -> [Int]
elemIndices = (OsChar -> OsString -> [Int]) -> OsChar -> OsString -> [Int]
forall a b. Coercible a b => a -> b
coerce OsChar -> OsString -> [Int]
OS.elemIndices
count :: OsChar -> OsString -> Int
count :: OsChar -> OsString -> Int
count = (OsChar -> OsString -> Int) -> OsChar -> OsString -> Int
forall a b. Coercible a b => a -> b
coerce OsChar -> OsString -> Int
OS.count
findIndex :: (OsChar -> Bool) -> OsString -> Maybe Int
findIndex :: (OsChar -> Bool) -> OsString -> Maybe Int
findIndex = ((OsChar -> Bool) -> OsString -> Maybe Int)
-> (OsChar -> Bool) -> OsString -> Maybe Int
forall a b. Coercible a b => a -> b
coerce (OsChar -> Bool) -> OsString -> Maybe Int
OS.findIndex
findIndices :: (OsChar -> Bool) -> OsString -> [Int]
findIndices :: (OsChar -> Bool) -> OsString -> [Int]
findIndices = ((OsChar -> Bool) -> OsString -> [Int])
-> (OsChar -> Bool) -> OsString -> [Int]
forall a b. Coercible a b => a -> b
coerce (OsChar -> Bool) -> OsString -> [Int]
OS.findIndices
#endif
#if MIN_VERSION_os_string(2,0,8) && !(MIN_VERSION_filepath(1,5,0))
fromShortBytes :: forall (m :: Type -> Type). MonadThrow m => ShortByteString -> m OsString
fromShortBytes :: forall (m :: * -> *). MonadThrow m => ShortByteString -> m OsString
fromShortBytes ShortByteString
sbs = OsString -> OsString
forall a b. Coercible a b => a -> b
coerce (OsString -> OsString) -> m OsString -> m OsString
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (forall (m :: * -> *). MonadThrow m => ShortByteString -> m OsString
OS.fromShortBytes @m ShortByteString
sbs)
#endif