through-text-0.1.0.0: Convert textual types through Text without needing O(n^2) instances.

Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Text.Through

Contents

Synopsis

Type classes

class ToText a where Source

Methods

toText :: a -> StrictText Source

Instances

ToText StrictText

The identity instance is used so throughText works even when converting to StrictText

ToText StrictByteString

Uses lenient decoding which replaces invalid characters with U+FFFD.

ToText LazyText 
ToText LazyByteString

Uses lenient decoding which replaces invalid characters with U+FFFD.

ToText [Char] 
ToText a => ToText (CI a) 

class FromText a where Source

Methods

fromText :: StrictText -> a Source

Instances

FromText StrictText

The identity instance is used so throughText works even when converting to StrictText.

FromText StrictByteString 
FromText LazyText 
FromText LazyByteString 
FromText [Char] 
(FoldCase a, FromText a) => FromText (CI a) 

Double conversion

throughText :: (ToText a, FromText b) => a -> b Source

Convert between all textual types.

Types and type aliases

data CI s :: * -> *

A CI s provides Case Insensitive comparison for the string-like type s (for example: String, Text, ByteString, etc.).

Note that CI s has an instance for IsString which together with the OverloadedStrings language extension allows you to write case insensitive string literals as in:

> ("Content-Type" :: CI Text) == ("CONTENT-TYPE" :: CI Text)
True

Instances

Eq s => Eq (CI s) 
Data s => Data (CI s) 
Ord s => Ord (CI s) 
(Read s, FoldCase s) => Read (CI s) 
Show s => Show (CI s) 
(IsString s, FoldCase s) => IsString (CI s) 
Monoid s => Monoid (CI s) 
FoldCase (CI s) 
NFData s => NFData (CI s) 
Hashable s => Hashable (CI s) 
(FoldCase a, FromText a) => FromText (CI a) 
ToText a => ToText (CI a) 
Typeable (* -> *) CI 

Provided for efficiency

lazyByteStringToLazyText :: LazyByteString -> LazyText Source

More efficient than throughText, replaces invalid characters with U+FFFD.

lazyTextToLazyByteString :: LazyText -> LazyByteString Source

More efficient than throughText