module Yesod.Session.Storage.Operation
( StorageOperation (..)
, StorageOperation' (..)
) where
import Internal.Prelude
import Session.Key
import Yesod.Session.SessionType
data StorageOperation'
= forall result. StorageOperation' (StorageOperation result)
deriving stock instance Show StorageOperation'
instance Eq StorageOperation' where
== :: StorageOperation' -> StorageOperation' -> Bool
(==) = \case
StorageOperation' a :: StorageOperation result
a@GetSession{} -> \case StorageOperation' b :: StorageOperation result
b@GetSession{} -> StorageOperation result
a StorageOperation result -> StorageOperation result -> Bool
forall a. Eq a => a -> a -> Bool
== StorageOperation result
StorageOperation result
b; StorageOperation'
_ -> Bool
False
StorageOperation' a :: StorageOperation result
a@DeleteSession{} -> \case StorageOperation' b :: StorageOperation result
b@DeleteSession{} -> StorageOperation result
a StorageOperation result -> StorageOperation result -> Bool
forall a. Eq a => a -> a -> Bool
== StorageOperation result
StorageOperation result
b; StorageOperation'
_ -> Bool
False
StorageOperation' a :: StorageOperation result
a@InsertSession{} -> \case StorageOperation' b :: StorageOperation result
b@InsertSession{} -> StorageOperation result
a StorageOperation result -> StorageOperation result -> Bool
forall a. Eq a => a -> a -> Bool
== StorageOperation result
StorageOperation result
b; StorageOperation'
_ -> Bool
False
StorageOperation' a :: StorageOperation result
a@ReplaceSession{} -> \case StorageOperation' b :: StorageOperation result
b@ReplaceSession{} -> StorageOperation result
a StorageOperation result -> StorageOperation result -> Bool
forall a. Eq a => a -> a -> Bool
== StorageOperation result
StorageOperation result
b; StorageOperation'
_ -> Bool
False
data StorageOperation result
=
result ~ Maybe Session => GetSession SessionKey
|
result ~ () => DeleteSession SessionKey
|
result ~ () => InsertSession Session
|
result ~ () => ReplaceSession Session
deriving stock instance Eq (StorageOperation result)
deriving stock instance Show (StorageOperation result)