servant-pagination-1.0.0: Type-safe pagination for Servant APIs

Safe HaskellNone
LanguageHaskell2010

Servant.Pagination.Internal

Synopsis

Documentation

orElse :: Either a b -> Either a b -> Either a b Source #

Helper to execute two `Either a b` successively

class ToAcceptRanges r where Source #

Representation of AcceptRanges as a list of comma-separated text fields from the type of a Range only (value isn't needed here since only the field matters)

Minimal complete definition

toAcceptRanges

Instances

(ToAcceptRanges a, ToAcceptRanges b) => ToAcceptRanges ((:|:) a b) Source # 

Methods

toAcceptRanges :: Proxy * (a :|: b) -> Text Source #

KnownSymbol field => ToAcceptRanges (Range field typ) Source # 

Methods

toAcceptRanges :: Proxy * (Range field typ) -> Text Source #

data a :|: b infixl 7 Source #

Combine two ranges in a new range, parsing is done left-first

Constructors

InL a 
InR b 

Instances

r :<: ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) r r2) r3) r4) r5) r6) r7) r8) r9) Source # 

Methods

liftRange :: r -> (((((((r :|: r2) :|: r3) :|: r4) :|: r5) :|: r6) :|: r7) :|: r8) :|: r9 Source #

r :<: ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) r1 r) r3) r4) r5) r6) r7) r8) r9) Source # 

Methods

liftRange :: r -> (((((((r1 :|: r) :|: r3) :|: r4) :|: r5) :|: r6) :|: r7) :|: r8) :|: r9 Source #

r :<: ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) r r2) r3) r4) r5) r6) r7) r8) Source # 

Methods

liftRange :: r -> ((((((r :|: r2) :|: r3) :|: r4) :|: r5) :|: r6) :|: r7) :|: r8 Source #

r :<: ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) r1 r) r3) r4) r5) r6) r7) r8) Source # 

Methods

liftRange :: r -> ((((((r1 :|: r) :|: r3) :|: r4) :|: r5) :|: r6) :|: r7) :|: r8 Source #

r :<: ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) r r2) r3) r4) r5) r6) r7) Source # 

Methods

liftRange :: r -> (((((r :|: r2) :|: r3) :|: r4) :|: r5) :|: r6) :|: r7 Source #

r :<: ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) r1 r) r3) r4) r5) r6) r7) Source # 

Methods

liftRange :: r -> (((((r1 :|: r) :|: r3) :|: r4) :|: r5) :|: r6) :|: r7 Source #

r :<: ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) r r2) r3) r4) r5) r6) Source # 

Methods

liftRange :: r -> ((((r :|: r2) :|: r3) :|: r4) :|: r5) :|: r6 Source #

r :<: ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) r1 r) r3) r4) r5) r6) Source # 

Methods

liftRange :: r -> ((((r1 :|: r) :|: r3) :|: r4) :|: r5) :|: r6 Source #

r :<: ((:|:) ((:|:) ((:|:) ((:|:) r r2) r3) r4) r5) Source # 

Methods

liftRange :: r -> (((r :|: r2) :|: r3) :|: r4) :|: r5 Source #

r :<: ((:|:) ((:|:) ((:|:) ((:|:) r1 r) r3) r4) r5) Source # 

Methods

liftRange :: r -> (((r1 :|: r) :|: r3) :|: r4) :|: r5 Source #

r :<: ((:|:) ((:|:) ((:|:) r r2) r3) r4) Source # 

Methods

liftRange :: r -> ((r :|: r2) :|: r3) :|: r4 Source #

r :<: ((:|:) ((:|:) ((:|:) r1 r) r3) r4) Source # 

Methods

liftRange :: r -> ((r1 :|: r) :|: r3) :|: r4 Source #

r :<: ((:|:) ((:|:) r r2) r3) Source # 

Methods

liftRange :: r -> (r :|: r2) :|: r3 Source #

r :<: ((:|:) ((:|:) r1 r) r3) Source # 

Methods

liftRange :: r -> (r1 :|: r) :|: r3 Source #

r :<: ((:|:) r1 r) Source # 

Methods

liftRange :: r -> r1 :|: r Source #

r :<: ((:|:) r r2) Source # 

Methods

liftRange :: r -> r :|: r2 Source #

(ToHttpApiData (NextRange a), ToHttpApiData (NextRange b)) => ToHttpApiData (NextRange ((:|:) a b)) # 
(ToHttpApiData (ContentRange a), ToHttpApiData (ContentRange b)) => ToHttpApiData (ContentRange ((:|:) a b)) # 
(ToHttpApiData a, ToHttpApiData b) => ToHttpApiData ((:|:) a b) Source # 

Methods

toUrlPiece :: (a :|: b) -> Text #

toEncodedUrlPiece :: (a :|: b) -> Builder #

toHeader :: (a :|: b) -> ByteString #

toQueryParam :: (a :|: b) -> Text #

(FromHttpApiData a, FromHttpApiData b) => FromHttpApiData ((:|:) a b) Source # 
(ToAcceptRanges a, ToAcceptRanges b) => ToAcceptRanges ((:|:) a b) Source # 

Methods

toAcceptRanges :: Proxy * (a :|: b) -> Text Source #

type family InRanges r rs :: Constraint where ... Source #

Type family helper to define a constraint about ranges

Equations

InRanges r r = () 
InRanges r (rs :|: r) = () 
InRanges r (rs :|: r') = InRanges r rs 

class range :<: ranges where Source #

Relation for lifting range into a combination of ranges

Minimal complete definition

liftRange

Methods

liftRange :: range -> ranges Source #

Instances

r :<: r Source # 

Methods

liftRange :: r -> r Source #

r :<: ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) r r2) r3) r4) r5) r6) r7) r8) r9) Source # 

Methods

liftRange :: r -> (((((((r :|: r2) :|: r3) :|: r4) :|: r5) :|: r6) :|: r7) :|: r8) :|: r9 Source #

r :<: ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) r1 r) r3) r4) r5) r6) r7) r8) r9) Source # 

Methods

liftRange :: r -> (((((((r1 :|: r) :|: r3) :|: r4) :|: r5) :|: r6) :|: r7) :|: r8) :|: r9 Source #

r :<: ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) r r2) r3) r4) r5) r6) r7) r8) Source # 

Methods

liftRange :: r -> ((((((r :|: r2) :|: r3) :|: r4) :|: r5) :|: r6) :|: r7) :|: r8 Source #

r :<: ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) r1 r) r3) r4) r5) r6) r7) r8) Source # 

Methods

liftRange :: r -> ((((((r1 :|: r) :|: r3) :|: r4) :|: r5) :|: r6) :|: r7) :|: r8 Source #

r :<: ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) r r2) r3) r4) r5) r6) r7) Source # 

Methods

liftRange :: r -> (((((r :|: r2) :|: r3) :|: r4) :|: r5) :|: r6) :|: r7 Source #

r :<: ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) r1 r) r3) r4) r5) r6) r7) Source # 

Methods

liftRange :: r -> (((((r1 :|: r) :|: r3) :|: r4) :|: r5) :|: r6) :|: r7 Source #

r :<: ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) r r2) r3) r4) r5) r6) Source # 

Methods

liftRange :: r -> ((((r :|: r2) :|: r3) :|: r4) :|: r5) :|: r6 Source #

r :<: ((:|:) ((:|:) ((:|:) ((:|:) ((:|:) r1 r) r3) r4) r5) r6) Source # 

Methods

liftRange :: r -> ((((r1 :|: r) :|: r3) :|: r4) :|: r5) :|: r6 Source #

r :<: ((:|:) ((:|:) ((:|:) ((:|:) r r2) r3) r4) r5) Source # 

Methods

liftRange :: r -> (((r :|: r2) :|: r3) :|: r4) :|: r5 Source #

r :<: ((:|:) ((:|:) ((:|:) ((:|:) r1 r) r3) r4) r5) Source # 

Methods

liftRange :: r -> (((r1 :|: r) :|: r3) :|: r4) :|: r5 Source #

r :<: ((:|:) ((:|:) ((:|:) r r2) r3) r4) Source # 

Methods

liftRange :: r -> ((r :|: r2) :|: r3) :|: r4 Source #

r :<: ((:|:) ((:|:) ((:|:) r1 r) r3) r4) Source # 

Methods

liftRange :: r -> ((r1 :|: r) :|: r3) :|: r4 Source #

r :<: ((:|:) ((:|:) r r2) r3) Source # 

Methods

liftRange :: r -> (r :|: r2) :|: r3 Source #

r :<: ((:|:) ((:|:) r1 r) r3) Source # 

Methods

liftRange :: r -> (r1 :|: r) :|: r3 Source #

r :<: ((:|:) r1 r) Source # 

Methods

liftRange :: r -> r1 :|: r Source #

r :<: ((:|:) r r2) Source # 

Methods

liftRange :: r -> r :|: r2 Source #