nested-routes-2.0.1: Declarative, compositional Wai responses

Safe HaskellNone
LanguageHaskell2010

Web.Routes.Nested.Types.UrlChunks

Synopsis

Documentation

data EitherUrlChunk x where Source

Constrained to AttoParsec & T.Text

Constructors

(:=) :: Text -> EitherUrlChunk Nothing 
(:~) :: (Text, Parser r) -> EitherUrlChunk (Just r) 
(:*) :: (Text, Regex) -> EitherUrlChunk (Just [String]) 

Instances

(~) (Maybe *) x (Nothing *) => IsString (EitherUrlChunk x) Source 
Extend (EitherUrlChunk (Just * r)) (RUPTrie Text (r -> a)) (RUPTrie Text a) Source 
Extend (EitherUrlChunk (Nothing *)) (RUPTrie Text a) (RUPTrie Text a) Source 

p :: (Text, Parser r) -> EitherUrlChunk (Just r) Source

r :: (Text, Regex) -> EitherUrlChunk (Just [String]) Source

data UrlChunks xs where Source

Container when defining route paths

Constructors

Cons :: EitherUrlChunk mx -> UrlChunks xs -> UrlChunks (mx : xs) 
Root :: UrlChunks [] 

Instances

ToL (UrlChunks xs) => ToL (UrlChunks ((:) (Maybe *) (Nothing *) xs)) Source 
ToL (UrlChunks ([] (Maybe *))) Source 
ToNE (UrlChunks ((:) (Maybe *) (Nothing *) ([] (Maybe *)))) Source 
ToNE (UrlChunks xs) => ToNE (UrlChunks ((:) (Maybe *) (Nothing *) xs)) Source 
(Extrude (UrlChunks xs) trie0 trie1, Extend (EitherUrlChunk x) trie1 trie2) => Extrude (UrlChunks ((:) (Maybe *) x xs)) trie0 trie2 Source 
(Singleton (UrlChunks xs) a trie0, Extend (EitherUrlChunk x) trie0 trie1) => Singleton (UrlChunks ((:) (Maybe *) x xs)) a trie1 Source 
Singleton (UrlChunks ([] (Maybe *))) a (RUPTrie Text a) Source 
Extrude (UrlChunks ([] (Maybe *))) (RUPTrie Text a) (RUPTrie Text a) Source 

(</>) :: EitherUrlChunk mx -> UrlChunks xs -> UrlChunks (mx : xs) infixr 9 Source