{-# LANGUAGE TemplateHaskell #-}

module Test.WebDriver.Capabilities.Proxy where

import Data.Aeson.TH
import Test.WebDriver.Capabilities.Aeson


data ProxyType =
  ProxyTypePac
  | ProxyTypeDirect
  | ProxyTypeAutodetect
  | ProxyTypeSystem
  | ProxyTypeManual
  deriving (Int -> ProxyType -> ShowS
[ProxyType] -> ShowS
ProxyType -> String
(Int -> ProxyType -> ShowS)
-> (ProxyType -> String)
-> ([ProxyType] -> ShowS)
-> Show ProxyType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ProxyType -> ShowS
showsPrec :: Int -> ProxyType -> ShowS
$cshow :: ProxyType -> String
show :: ProxyType -> String
$cshowList :: [ProxyType] -> ShowS
showList :: [ProxyType] -> ShowS
Show, ProxyType -> ProxyType -> Bool
(ProxyType -> ProxyType -> Bool)
-> (ProxyType -> ProxyType -> Bool) -> Eq ProxyType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ProxyType -> ProxyType -> Bool
== :: ProxyType -> ProxyType -> Bool
$c/= :: ProxyType -> ProxyType -> Bool
/= :: ProxyType -> ProxyType -> Bool
Eq)
deriveJSON toCamelC2 ''ProxyType

data Proxy = Proxy {
  Proxy -> ProxyType
proxyType :: ProxyType
  }
  deriving (Int -> Proxy -> ShowS
[Proxy] -> ShowS
Proxy -> String
(Int -> Proxy -> ShowS)
-> (Proxy -> String) -> ([Proxy] -> ShowS) -> Show Proxy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Proxy -> ShowS
showsPrec :: Int -> Proxy -> ShowS
$cshow :: Proxy -> String
show :: Proxy -> String
$cshowList :: [Proxy] -> ShowS
showList :: [Proxy] -> ShowS
Show, Proxy -> Proxy -> Bool
(Proxy -> Proxy -> Bool) -> (Proxy -> Proxy -> Bool) -> Eq Proxy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Proxy -> Proxy -> Bool
== :: Proxy -> Proxy -> Bool
$c/= :: Proxy -> Proxy -> Bool
/= :: Proxy -> Proxy -> Bool
Eq)
deriveJSON baseOptions ''Proxy