module Servant.API.BrowserHeader where
import Servant.Utils.Links
import Servant
import Servant.Foreign
import Servant.Subscriber.Subscribable
import GHC.TypeLits
data BrowserHeader (sym :: Symbol) a
type instance IsElem' e (BrowserHeader :> s) = IsElem e s
instance HasLink sub => HasLink (BrowserHeader sym a :> sub) where
type MkLink (BrowserHeader sym a :> sub) = MkLink (Header sym a :> sub)
toLink _ = toLink (Proxy :: Proxy (Header sym a :> sub))
instance (KnownSymbol sym, FromHttpApiData a, HasServer sublayout context)
=> HasServer (BrowserHeader sym a :> sublayout) context where
type ServerT (BrowserHeader sym a :> sublayout) m = ServerT (Header sym a :> sublayout) m
route Proxy = route (Proxy :: Proxy (Header sym a :> sublayout))
instance (KnownSymbol sym, HasForeign lang ftype sublayout)
=> HasForeign lang ftype (BrowserHeader sym a :> sublayout) where
type Foreign ftype (BrowserHeader sym a :> sublayout) = Foreign ftype sublayout
foreignFor lang p Proxy = foreignFor lang p (Proxy :: Proxy sublayout)
type instance IsSubscribable' endpoint (BrowserHeader sym a :> sub ) = IsSubscribable endpoint sub