foundation-0.0.6: Alternative prelude with batteries and no dependencies

LicenseBSD-style
MaintainerHaskell Foundation
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Foundation.String.ASCII

Contents

Description

A AsciiString type backed by a ASCII encoded byte array and all the necessary functions to manipulate the string.

The recommended type is AsciiString from UTF8

Synopsis

Documentation

data AsciiString #

Opaque packed array of characters in the ASCII encoding

Instances

IsList AsciiString # 
Eq AsciiString # 
Ord AsciiString # 
Show AsciiString # 
IsString AsciiString # 
Monoid AsciiString # 
Collection AsciiString # 
InnerFunctor AsciiString # 
Sequential AsciiString # 

Methods

take :: Int -> AsciiString -> AsciiString #

revTake :: Int -> AsciiString -> AsciiString #

drop :: Int -> AsciiString -> AsciiString #

revDrop :: Int -> AsciiString -> AsciiString #

splitAt :: Int -> AsciiString -> (AsciiString, AsciiString) #

revSplitAt :: Int -> AsciiString -> (AsciiString, AsciiString) #

splitOn :: (Element AsciiString -> Bool) -> AsciiString -> [AsciiString] #

break :: (Element AsciiString -> Bool) -> AsciiString -> (AsciiString, AsciiString) #

breakElem :: Element AsciiString -> AsciiString -> (AsciiString, AsciiString) #

intersperse :: Element AsciiString -> AsciiString -> AsciiString #

intercalate :: Element AsciiString -> AsciiString -> Element AsciiString #

span :: (Element AsciiString -> Bool) -> AsciiString -> (AsciiString, AsciiString) #

filter :: (Element AsciiString -> Bool) -> AsciiString -> AsciiString #

partition :: (Element AsciiString -> Bool) -> AsciiString -> (AsciiString, AsciiString) #

reverse :: AsciiString -> AsciiString #

uncons :: AsciiString -> Maybe (Element AsciiString, AsciiString) #

unsnoc :: AsciiString -> Maybe (AsciiString, Element AsciiString) #

snoc :: AsciiString -> Element AsciiString -> AsciiString #

cons :: Element AsciiString -> AsciiString -> AsciiString #

find :: (Element AsciiString -> Bool) -> AsciiString -> Maybe (Element AsciiString) #

sortBy :: (Element AsciiString -> Element AsciiString -> Ordering) -> AsciiString -> AsciiString #

singleton :: Element AsciiString -> AsciiString #

head :: NonEmpty AsciiString -> Element AsciiString #

last :: NonEmpty AsciiString -> Element AsciiString #

tail :: NonEmpty AsciiString -> AsciiString #

init :: NonEmpty AsciiString -> AsciiString #

isPrefixOf :: AsciiString -> AsciiString -> Bool #

isSuffixOf :: AsciiString -> AsciiString -> Bool #

Zippable AsciiString # 

Methods

zipWith :: (Sequential a, Sequential b) => (Element a -> Element b -> Element AsciiString) -> a -> b -> AsciiString #

zipWith3 :: (Sequential a, Sequential b, Sequential c) => (Element a -> Element b -> Element c -> Element AsciiString) -> a -> b -> c -> AsciiString #

zipWith4 :: (Sequential a, Sequential b, Sequential c, Sequential d) => (Element a -> Element b -> Element c -> Element d -> Element AsciiString) -> a -> b -> c -> d -> AsciiString #

zipWith5 :: (Sequential a, Sequential b, Sequential c, Sequential d, Sequential e) => (Element a -> Element b -> Element c -> Element d -> Element e -> Element AsciiString) -> a -> b -> c -> d -> e -> AsciiString #

zipWith6 :: (Sequential a, Sequential b, Sequential c, Sequential d, Sequential e, Sequential f) => (Element a -> Element b -> Element c -> Element d -> Element e -> Element f -> Element AsciiString) -> a -> b -> c -> d -> e -> f -> AsciiString #

zipWith7 :: (Sequential a, Sequential b, Sequential c, Sequential d, Sequential e, Sequential f, Sequential g) => (Element a -> Element b -> Element c -> Element d -> Element e -> Element f -> Element g -> Element AsciiString) -> a -> b -> c -> d -> e -> f -> g -> AsciiString #

type Item AsciiString # 
type Element AsciiString # 

create :: PrimMonad prim => Int -> (MutableAsciiString (PrimState prim) -> prim Int) -> prim AsciiString #

Binary conversion

fromBytesUnsafe :: UArray CUChar -> AsciiString #

Convert a Byte Array representing UTF8 data directly to a string without checking for UTF8 validity

If the input contains invalid sequences, it will trigger runtime async errors when processing data.

In doubt, use fromBytes

copy :: AsciiString -> AsciiString #

Copy the AsciiString

Legacy utility