Copyright | (c) William Yao 2019-2020 |
---|---|
License | BSD-3 |
Maintainer | [email protected] |
Stability | experimental |
Portability | POSIX |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Data.String.Interpolate.Conversion
Contents
Description
Synopsis
- type family IsCustomSink dst :: Bool where ...
- class IsCustomSink dst ~ flag => InterpSink (flag :: Bool) dst where
- class InterpSink flag dst => Interpolatable (flag :: Bool) src dst where
- interpolate :: Proxy flag -> src -> B dst (Builder flag dst)
- bsToTextBuilder :: ByteString -> Builder
- lbsToTextBuilder :: ByteString -> Builder
- encodeCharUTF8 :: Char -> Builder
- proxyWrapper :: forall final (flag :: Bool). IsCustomSink final ~ flag => (Proxy flag -> final) -> final
Documentation
type family IsCustomSink dst :: Bool where ... Source #
Does this type require special behavior when something is interpolated into it?
Equations
IsCustomSink Text = 'True | |
IsCustomSink Text = 'True | |
IsCustomSink Builder = 'True | |
IsCustomSink ByteString = 'True | |
IsCustomSink ByteString = 'True | |
IsCustomSink Builder = 'True | |
IsCustomSink _1 = 'False |
class IsCustomSink dst ~ flag => InterpSink (flag :: Bool) dst where Source #
Something that can be interpolated into.
Methods
ofString :: Proxy flag -> String -> B dst (Builder flag dst) Source #
Meant to be used only for verbatim parts of the interpolation.
build :: Proxy flag -> B dst (Builder flag dst) -> B dst (Builder flag dst) -> B dst (Builder flag dst) Source #
build
should be 'in-order'; that is, the left builder comes from
a string on the left, and the right builder comes from a string on the right.
finalize :: Proxy flag -> B dst (Builder flag dst) -> dst Source #
Instances
class InterpSink flag dst => Interpolatable (flag :: Bool) src dst where Source #
Represents that we can interpolate objects of type src into a an interpolation string that returns type dst.
Methods
interpolate :: Proxy flag -> src -> B dst (Builder flag dst) Source #
Instances
(IsString dst, IsCustomSink dst ~ 'False) => Interpolatable 'False Builder dst Source # | |
Defined in Data.String.Interpolate.Conversion | |
(IsString dst, IsCustomSink dst ~ 'False) => Interpolatable 'False ByteString dst Source # | |
Defined in Data.String.Interpolate.Conversion Methods interpolate :: Proxy 'False -> ByteString -> B dst (Builder 'False dst) Source # | |
(IsString dst, IsCustomSink dst ~ 'False) => Interpolatable 'False ByteString dst Source # | |
Defined in Data.String.Interpolate.Conversion Methods interpolate :: Proxy 'False -> ByteString -> B dst (Builder 'False dst) Source # | |
(IsString dst, IsCustomSink dst ~ 'False) => Interpolatable 'False Text dst Source # | |
Defined in Data.String.Interpolate.Conversion | |
(IsString dst, IsCustomSink dst ~ 'False) => Interpolatable 'False Builder dst Source # | |
Defined in Data.String.Interpolate.Conversion | |
(IsString dst, IsCustomSink dst ~ 'False) => Interpolatable 'False Text dst Source # | |
Defined in Data.String.Interpolate.Conversion | |
(IsString dst, IsCustomSink dst ~ 'False) => Interpolatable 'False String dst Source # | |
Defined in Data.String.Interpolate.Conversion | |
(IsString dst, IsCustomSink dst ~ 'False) => Interpolatable 'False Char dst Source # | |
Defined in Data.String.Interpolate.Conversion | |
(Show src, IsString dst, IsCustomSink dst ~ 'False) => Interpolatable 'False src dst Source # | |
Defined in Data.String.Interpolate.Conversion | |
Interpolatable 'True Builder Builder Source # | |
Interpolatable 'True Builder ByteString Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> Builder -> B ByteString (Builder 'True ByteString) Source # | |
Interpolatable 'True Builder ByteString Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> Builder -> B ByteString (Builder 'True ByteString) Source # | |
Interpolatable 'True Builder Text Source # | |
Interpolatable 'True Builder Builder Source # | |
Interpolatable 'True Builder Text Source # | |
Interpolatable 'True ByteString Builder Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> ByteString -> B Builder (Builder 'True Builder) Source # | |
Interpolatable 'True ByteString ByteString Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> ByteString -> B ByteString (Builder 'True ByteString) Source # | |
Interpolatable 'True ByteString ByteString Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> ByteString -> B ByteString (Builder 'True ByteString) Source # | |
Interpolatable 'True ByteString Text Source # | |
Defined in Data.String.Interpolate.Conversion.TextSink Methods interpolate :: Proxy 'True -> ByteString -> B Text (Builder 'True Text) Source # | |
Interpolatable 'True ByteString Builder Source # | |
Defined in Data.String.Interpolate.Conversion.TextSink Methods interpolate :: Proxy 'True -> ByteString -> B Builder (Builder 'True Builder) Source # | |
Interpolatable 'True ByteString Text Source # | |
Defined in Data.String.Interpolate.Conversion.TextSink Methods interpolate :: Proxy 'True -> ByteString -> B Text (Builder 'True Text) Source # | |
Interpolatable 'True ByteString Builder Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> ByteString -> B Builder (Builder 'True Builder) Source # | |
Interpolatable 'True ByteString ByteString Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> ByteString -> B ByteString (Builder 'True ByteString) Source # | |
Interpolatable 'True ByteString ByteString Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> ByteString -> B ByteString (Builder 'True ByteString) Source # | |
Interpolatable 'True ByteString Text Source # | |
Defined in Data.String.Interpolate.Conversion.TextSink Methods interpolate :: Proxy 'True -> ByteString -> B Text (Builder 'True Text) Source # | |
Interpolatable 'True ByteString Builder Source # | |
Defined in Data.String.Interpolate.Conversion.TextSink Methods interpolate :: Proxy 'True -> ByteString -> B Builder (Builder 'True Builder) Source # | |
Interpolatable 'True ByteString Text Source # | |
Defined in Data.String.Interpolate.Conversion.TextSink Methods interpolate :: Proxy 'True -> ByteString -> B Text (Builder 'True Text) Source # | |
Interpolatable 'True Text Builder Source # | |
Interpolatable 'True Text ByteString Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> Text -> B ByteString (Builder 'True ByteString) Source # | |
Interpolatable 'True Text ByteString Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> Text -> B ByteString (Builder 'True ByteString) Source # | |
Interpolatable 'True Text Text Source # | |
Interpolatable 'True Text Builder Source # | |
Interpolatable 'True Text Text Source # | |
Interpolatable 'True Builder Builder Source # | |
Interpolatable 'True Builder ByteString Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> Builder -> B ByteString (Builder 'True ByteString) Source # | |
Interpolatable 'True Builder ByteString Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> Builder -> B ByteString (Builder 'True ByteString) Source # | |
Interpolatable 'True Builder Text Source # | |
Interpolatable 'True Builder Builder Source # | |
Interpolatable 'True Builder Text Source # | |
Interpolatable 'True Text Builder Source # | |
Interpolatable 'True Text ByteString Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> Text -> B ByteString (Builder 'True ByteString) Source # | |
Interpolatable 'True Text ByteString Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> Text -> B ByteString (Builder 'True ByteString) Source # | |
Interpolatable 'True Text Text Source # | |
Interpolatable 'True Text Builder Source # | |
Interpolatable 'True Text Text Source # | |
Interpolatable 'True String Builder Source # | |
Interpolatable 'True String ByteString Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> String -> B ByteString (Builder 'True ByteString) Source # | |
Interpolatable 'True String ByteString Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> String -> B ByteString (Builder 'True ByteString) Source # | |
Interpolatable 'True String Text Source # | |
Interpolatable 'True String Builder Source # | |
Interpolatable 'True String Text Source # | |
Interpolatable 'True Char Builder Source # | |
Interpolatable 'True Char ByteString Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> Char -> B ByteString (Builder 'True ByteString) Source # | |
Interpolatable 'True Char ByteString Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> Char -> B ByteString (Builder 'True ByteString) Source # | |
Interpolatable 'True Char Text Source # | |
Interpolatable 'True Char Builder Source # | |
Interpolatable 'True Char Text Source # | |
Show src => Interpolatable 'True src Builder Source # | |
Show src => Interpolatable 'True src ByteString Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> src -> B ByteString (Builder 'True ByteString) Source # | |
Show src => Interpolatable 'True src ByteString Source # | |
Defined in Data.String.Interpolate.Conversion.ByteStringSink Methods interpolate :: Proxy 'True -> src -> B ByteString (Builder 'True ByteString) Source # | |
Show src => Interpolatable 'True src Text Source # | |
Defined in Data.String.Interpolate.Conversion.TextSink | |
Show src => Interpolatable 'True src Builder Source # | |
Defined in Data.String.Interpolate.Conversion.TextSink | |
Show src => Interpolatable 'True src Text Source # | |
Defined in Data.String.Interpolate.Conversion.TextSink |
bsToTextBuilder :: ByteString -> Builder Source #
Convert a strict ByteString into a Text Builder
, converting any invalid
characters into the Unicode replacement character � (U+FFFD).
lbsToTextBuilder :: ByteString -> Builder Source #
Convert a lazy ByteString into a Text Builder
, converting any invalid
characters into the Unicode replacement character � (U+FFFD).
encodeCharUTF8 :: Char -> Builder Source #
Data.ByteString.Builder provides charUtf8
to do this, but it doesn't
correctly handle invalid characters.
proxyWrapper :: forall final (flag :: Bool). IsCustomSink final ~ flag => (Proxy flag -> final) -> final Source #
Used to indicate to GHC that the value of all the proxy arguments is the same.
Orphan instances
(IsCustomSink str ~ 'False, IsString str) => InterpSink 'False str Source # | |||||
Associated Types
| |||||
(IsString dst, IsCustomSink dst ~ 'False) => Interpolatable 'False Builder dst Source # | |||||
(IsString dst, IsCustomSink dst ~ 'False) => Interpolatable 'False ByteString dst Source # | |||||
Methods interpolate :: Proxy 'False -> ByteString -> B dst (Builder 'False dst) Source # | |||||
(IsString dst, IsCustomSink dst ~ 'False) => Interpolatable 'False ByteString dst Source # | |||||
Methods interpolate :: Proxy 'False -> ByteString -> B dst (Builder 'False dst) Source # | |||||
(IsString dst, IsCustomSink dst ~ 'False) => Interpolatable 'False Text dst Source # | |||||
(IsString dst, IsCustomSink dst ~ 'False) => Interpolatable 'False Builder dst Source # | |||||
(IsString dst, IsCustomSink dst ~ 'False) => Interpolatable 'False Text dst Source # | |||||
(IsString dst, IsCustomSink dst ~ 'False) => Interpolatable 'False String dst Source # | |||||
(IsString dst, IsCustomSink dst ~ 'False) => Interpolatable 'False Char dst Source # | |||||
(Show src, IsString dst, IsCustomSink dst ~ 'False) => Interpolatable 'False src dst Source # | |||||