mirror of
https://github.com/ilyakooo0/roboservant.git
synced 2024-10-05 12:37:17 +03:00
34 lines
705 B
Haskell
34 lines
705 B
Haskell
{-# LANGUAGE DataKinds #-}
|
|
{-# LANGUAGE DeriveGeneric #-}
|
|
{-# LANGUAGE DerivingStrategies #-}
|
|
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
|
|
{-# LANGUAGE OverloadedStrings #-}
|
|
{-# LANGUAGE TypeOperators #-}
|
|
|
|
module Seeded where
|
|
|
|
import Data.Aeson
|
|
import Data.Hashable
|
|
import Data.Typeable (Typeable)
|
|
import GHC.Generics (Generic)
|
|
import Servant
|
|
|
|
newtype Seed = Seed Int
|
|
deriving (Generic, Eq, Show, Typeable)
|
|
deriving newtype (FromHttpApiData, ToHttpApiData)
|
|
|
|
instance ToJSON Seed
|
|
|
|
instance FromJSON Seed
|
|
|
|
instance Hashable Seed
|
|
|
|
type Api =
|
|
Capture "seed" Seed :> Get '[JSON] ()
|
|
:<|> Get '[JSON] ()
|
|
|
|
server :: Server Api
|
|
server =
|
|
(\(Seed _) -> error "we blow up if we get here")
|
|
:<|> pure ()
|