module CookieTray.Command.PutOne where

import CookieTray (Action (..), Expiring (Expiring), Expiry, Meta (..), Name, ToCommandList (..), Value)
import CookieTray qualified
import CookieTray.Command (Command (Command))
import CookieTray.Command qualified as Command
import Prelude (Eq, Ord, Show)

data PutOne = PutOne
  { PutOne -> Name
name :: Name,
    PutOne -> Value
value :: Value,
    PutOne -> Expiry
expiry :: Expiry,
    PutOne -> Meta
meta :: Meta
  }
  deriving (PutOne -> PutOne -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PutOne -> PutOne -> Bool
$c/= :: PutOne -> PutOne -> Bool
== :: PutOne -> PutOne -> Bool
$c== :: PutOne -> PutOne -> Bool
Eq, Eq PutOne
PutOne -> PutOne -> Bool
PutOne -> PutOne -> Ordering
PutOne -> PutOne -> PutOne
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: PutOne -> PutOne -> PutOne
$cmin :: PutOne -> PutOne -> PutOne
max :: PutOne -> PutOne -> PutOne
$cmax :: PutOne -> PutOne -> PutOne
>= :: PutOne -> PutOne -> Bool
$c>= :: PutOne -> PutOne -> Bool
> :: PutOne -> PutOne -> Bool
$c> :: PutOne -> PutOne -> Bool
<= :: PutOne -> PutOne -> Bool
$c<= :: PutOne -> PutOne -> Bool
< :: PutOne -> PutOne -> Bool
$c< :: PutOne -> PutOne -> Bool
compare :: PutOne -> PutOne -> Ordering
$ccompare :: PutOne -> PutOne -> Ordering
Ord, Int -> PutOne -> ShowS
[PutOne] -> ShowS
PutOne -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PutOne] -> ShowS
$cshowList :: [PutOne] -> ShowS
show :: PutOne -> String
$cshow :: PutOne -> String
showsPrec :: Int -> PutOne -> ShowS
$cshowsPrec :: Int -> PutOne -> ShowS
Show)

instance ToCommandList PutOne where
  toCommandList :: PutOne -> [Command]
toCommandList PutOne
x =
    (forall a. a -> [a] -> [a]
: [])
      Command
        { name :: Name
Command.name = PutOne -> Name
name PutOne
x,
          meta :: Meta
Command.meta = PutOne -> Meta
meta PutOne
x,
          action :: Action (Expiring Value)
Command.action =
            forall a. a -> Action a
Put
              Expiring
                { expiring :: Value
CookieTray.expiring = PutOne -> Value
value PutOne
x,
                  expiry :: Expiry
CookieTray.expiry = PutOne -> Expiry
expiry PutOne
x
                }
        }