uri-templater-0.3.1.0: Parsing & Quasiquoting for RFC 6570 URI Templates

Safe HaskellNone
LanguageHaskell98

Network.URI.Template.Types

Synopsis

Documentation

data TemplateValue a where Source #

All values must reduce to a single value pair, an associative list of keys and values, or a list of values without keys.

newtype AList k v Source #

A simple list of key value pairs. Useful when you want to be able to have multiple duplicate keys, which Map and HashMap don't support.

Constructors

AList 

Fields

Instances

(Eq v, Eq k) => Eq (AList k v) Source # 

Methods

(==) :: AList k v -> AList k v -> Bool #

(/=) :: AList k v -> AList k v -> Bool #

(Read v, Read k) => Read (AList k v) Source # 
(Show v, Show k) => Show (AList k v) Source # 

Methods

showsPrec :: Int -> AList k v -> ShowS #

show :: AList k v -> String #

showList :: [AList k v] -> ShowS #

(ToTemplateValue k, (~) * (TemplateRep k) Single, ToTemplateValue v, (~) * (TemplateRep v) Single) => ToTemplateValue (AList k v) Source # 

Associated Types

type TemplateRep (AList k v) :: * Source #

type TemplateRep (AList k v) Source # 

class ToTemplateValue a where Source #

Minimal complete definition

toTemplateValue

Associated Types

type TemplateRep a :: * Source #

Instances

ToTemplateValue Bool Source # 
ToTemplateValue Double Source # 
ToTemplateValue Float Source # 
ToTemplateValue Int Source # 

Associated Types

type TemplateRep Int :: * Source #

ToTemplateValue Int8 Source # 
ToTemplateValue Int16 Source # 
ToTemplateValue Int32 Source # 
ToTemplateValue Int64 Source # 
ToTemplateValue Integer Source # 
ToTemplateValue Ordering Source # 
ToTemplateValue Word Source # 
ToTemplateValue Word8 Source # 
ToTemplateValue Word16 Source # 
ToTemplateValue Word32 Source # 
ToTemplateValue Word64 Source # 
ToTemplateValue () Source # 

Associated Types

type TemplateRep () :: * Source #

ToTemplateValue Text Source # 
ToTemplateValue Text Source # 
ToTemplateValue Natural Source # 
ToTemplateValue Version Source # 
ToTemplateValue All Source # 

Associated Types

type TemplateRep All :: * Source #

ToTemplateValue Any Source # 

Associated Types

type TemplateRep Any :: * Source #

ToTemplateValue LocalTime Source # 
ToTemplateValue ZonedTime Source # 
ToTemplateValue TimeOfDay Source # 
ToTemplateValue UTCTime Source # 
ToTemplateValue NominalDiffTime Source # 
ToTemplateValue Day Source # 

Associated Types

type TemplateRep Day :: * Source #

ToTemplateValue UUID Source # 
ToTemplateValue TemplateString Source # 
(ToTemplateValue a, (~) * (TemplateRep a) Single) => ToTemplateValue [a] Source # 

Associated Types

type TemplateRep [a] :: * Source #

(ToTemplateValue a, (~) * (TemplateRep a) Single) => ToTemplateValue (Maybe a) Source # 

Associated Types

type TemplateRep (Maybe a) :: * Source #

ToTemplateValue a => ToTemplateValue (Identity a) Source # 

Associated Types

type TemplateRep (Identity a) :: * Source #

(ToTemplateValue a, (~) * (TemplateRep a) Single) => ToTemplateValue (NonEmpty a) Source # 

Associated Types

type TemplateRep (NonEmpty a) :: * Source #

(ToTemplateValue a, (~) * (TemplateRep a) Single) => ToTemplateValue (Dual a) Source # 

Associated Types

type TemplateRep (Dual a) :: * Source #

(ToTemplateValue a, (~) * (TemplateRep a) Single) => ToTemplateValue (Sum a) Source # 

Associated Types

type TemplateRep (Sum a) :: * Source #

(ToTemplateValue a, (~) * (TemplateRep a) Single) => ToTemplateValue (Product a) Source # 

Associated Types

type TemplateRep (Product a) :: * Source #

(ToTemplateValue a, (~) * (TemplateRep a) Single) => ToTemplateValue (First a) Source # 

Associated Types

type TemplateRep (First a) :: * Source #

(ToTemplateValue a, (~) * (TemplateRep a) Single) => ToTemplateValue (Last a) Source # 

Associated Types

type TemplateRep (Last a) :: * Source #

(ToTemplateValue a, (~) * (TemplateRep a) Single) => ToTemplateValue (Vector a) Source # 

Associated Types

type TemplateRep (Vector a) :: * Source #

(ToTemplateValue a, ToTemplateValue b, (~) * (TemplateRep a) Single, (~) * (TemplateRep b) Single) => ToTemplateValue (Either a b) Source # 

Associated Types

type TemplateRep (Either a b) :: * Source #

(ToTemplateValue a, (~) * (TemplateRep a) Single, ToTemplateValue b, (~) * (TemplateRep b) Single) => ToTemplateValue (a, b) Source # 

Associated Types

type TemplateRep (a, b) :: * Source #

Methods

toTemplateValue :: (a, b) -> TemplateValue (TemplateRep (a, b)) Source #

(ToTemplateValue k, (~) * (TemplateRep k) Single, ToTemplateValue v, (~) * (TemplateRep v) Single) => ToTemplateValue (Map k v) Source # 

Associated Types

type TemplateRep (Map k v) :: * Source #

(ToTemplateValue k, (~) * (TemplateRep k) Single, ToTemplateValue v, (~) * (TemplateRep v) Single) => ToTemplateValue (HashMap k v) Source # 

Associated Types

type TemplateRep (HashMap k v) :: * Source #

(ToTemplateValue k, (~) * (TemplateRep k) Single, ToTemplateValue v, (~) * (TemplateRep v) Single) => ToTemplateValue (AList k v) Source # 

Associated Types

type TemplateRep (AList k v) :: * Source #

(ToTemplateValue a, (~) * (TemplateRep a) Single, ToTemplateValue b, (~) * (TemplateRep b) Single, ToTemplateValue c, (~) * (TemplateRep c) Single) => ToTemplateValue (a, b, c) Source # 

Associated Types

type TemplateRep (a, b, c) :: * Source #

Methods

toTemplateValue :: (a, b, c) -> TemplateValue (TemplateRep (a, b, c)) Source #

(ToTemplateValue a, (~) * (TemplateRep a) Single, ToTemplateValue b, (~) * (TemplateRep b) Single, ToTemplateValue c, (~) * (TemplateRep c) Single, ToTemplateValue d, (~) * (TemplateRep d) Single) => ToTemplateValue (a, b, c, d) Source # 

Associated Types

type TemplateRep (a, b, c, d) :: * Source #

Methods

toTemplateValue :: (a, b, c, d) -> TemplateValue (TemplateRep (a, b, c, d)) Source #

(ToTemplateValue a, (~) * (TemplateRep a) Single, ToTemplateValue b, (~) * (TemplateRep b) Single, ToTemplateValue c, (~) * (TemplateRep c) Single, ToTemplateValue d, (~) * (TemplateRep d) Single, ToTemplateValue e, (~) * (TemplateRep e) Single) => ToTemplateValue (a, b, c, d, e) Source # 

Associated Types

type TemplateRep (a, b, c, d, e) :: * Source #

Methods

toTemplateValue :: (a, b, c, d, e) -> TemplateValue (TemplateRep (a, b, c, d, e)) Source #

(ToTemplateValue a, (~) * (TemplateRep a) Single, ToTemplateValue b, (~) * (TemplateRep b) Single, ToTemplateValue c, (~) * (TemplateRep c) Single, ToTemplateValue d, (~) * (TemplateRep d) Single, ToTemplateValue e, (~) * (TemplateRep e) Single, ToTemplateValue f, (~) * (TemplateRep f) Single) => ToTemplateValue (a, b, c, d, e, f) Source # 

Associated Types

type TemplateRep (a, b, c, d, e, f) :: * Source #

Methods

toTemplateValue :: (a, b, c, d, e, f) -> TemplateValue (TemplateRep (a, b, c, d, e, f)) Source #

(ToTemplateValue a, (~) * (TemplateRep a) Single, ToTemplateValue b, (~) * (TemplateRep b) Single, ToTemplateValue c, (~) * (TemplateRep c) Single, ToTemplateValue d, (~) * (TemplateRep d) Single, ToTemplateValue e, (~) * (TemplateRep e) Single, ToTemplateValue f, (~) * (TemplateRep f) Single, ToTemplateValue g, (~) * (TemplateRep g) Single) => ToTemplateValue (a, b, c, d, e, f, g) Source # 

Associated Types

type TemplateRep (a, b, c, d, e, f, g) :: * Source #

Methods

toTemplateValue :: (a, b, c, d, e, f, g) -> TemplateValue (TemplateRep (a, b, c, d, e, f, g)) Source #

data TemplateSegment Source #

Constructors

Literal String

A literal string. No URI escaping will be performed

Embed Modifier [Variable]

An interpolation can have multiple variables (separated by commas in the textual format)

type UriTemplate = [TemplateSegment] Source #

A URI template is fundamentally a bunch of segments that are either constants or else an interpolation

data Modifier Source #

How an interpolated value should be rendered

Constructors

Simple

No prefix

Reserved

Prefixed by +

Fragment

Prefixed by #

Label

Prefixed by .

PathSegment

Prefixed by /

PathParameter

Prefixed by ;

Query

Prefixed by ?

QueryContinuation

Prefixed by &