module CookieTray.Command.PutMany where import CookieTray (Action (..), Expiring (Expiring), Expiry, Meta (..), ToCommandList (..), Tray, Value) import CookieTray qualified import CookieTray.Command (Command (Command)) import CookieTray.Command qualified as Command import Data.Functor ((<&>)) import Prelude (Eq, Ord, Show) data PutMany = PutMany { PutMany -> Tray Value tray :: Tray Value, PutMany -> Expiry expiry :: Expiry, PutMany -> Meta meta :: Meta } deriving (PutMany -> PutMany -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: PutMany -> PutMany -> Bool $c/= :: PutMany -> PutMany -> Bool == :: PutMany -> PutMany -> Bool $c== :: PutMany -> PutMany -> Bool Eq, Eq PutMany PutMany -> PutMany -> Bool PutMany -> PutMany -> Ordering PutMany -> PutMany -> PutMany 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 :: PutMany -> PutMany -> PutMany $cmin :: PutMany -> PutMany -> PutMany max :: PutMany -> PutMany -> PutMany $cmax :: PutMany -> PutMany -> PutMany >= :: PutMany -> PutMany -> Bool $c>= :: PutMany -> PutMany -> Bool > :: PutMany -> PutMany -> Bool $c> :: PutMany -> PutMany -> Bool <= :: PutMany -> PutMany -> Bool $c<= :: PutMany -> PutMany -> Bool < :: PutMany -> PutMany -> Bool $c< :: PutMany -> PutMany -> Bool compare :: PutMany -> PutMany -> Ordering $ccompare :: PutMany -> PutMany -> Ordering Ord, Int -> PutMany -> ShowS [PutMany] -> ShowS PutMany -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [PutMany] -> ShowS $cshowList :: [PutMany] -> ShowS show :: PutMany -> String $cshow :: PutMany -> String showsPrec :: Int -> PutMany -> ShowS $cshowsPrec :: Int -> PutMany -> ShowS Show) instance ToCommandList PutMany where toCommandList :: PutMany -> [Command] toCommandList PutMany x = forall a. Tray a -> [Named a] CookieTray.toList (PutMany -> Tray Value tray PutMany x) forall (f :: * -> *) a b. Functor f => f a -> (a -> b) -> f b <&> \Named Value y -> Command { name :: Name Command.name = forall a. Named a -> Name CookieTray.name Named Value y, meta :: Meta Command.meta = PutMany -> Meta meta PutMany x, action :: Action (Expiring Value) Command.action = forall a. a -> Action a Put Expiring { expiring :: Value CookieTray.expiring = forall a. Named a -> a CookieTray.value Named Value y, expiry :: Expiry CookieTray.expiry = PutMany -> Expiry expiry PutMany x } }