Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- newtype BoltEnum a = BoltEnum a
- class GToValue rep where
- class GFromValue rep where
- gFromValue :: String -> Maybe (rep a)
Documentation
Wrapper to encode enum-like types as strings in the DB.
Intended usage is with DerivingVia
:
>>>
:{
data Color = Red | Green | Blue deriving (Show, Generic) deriving (ToValue, FromValue) via BoltEnum Color :}
>>>
toValue Red
T "Red">>>
fromValue (T "Blue") :: Color
Blue>>>
fromValue (T "Brown") :: Color
*** Exception: Could not unpack unknown value Brown of Color ... ...
BoltEnum a |
Instances
Eq a => Eq (BoltEnum a) Source # | |
Show a => Show (BoltEnum a) Source # | |
Generic (BoltEnum a) Source # | |
(Typeable a, Generic a, GFromValue (Rep a)) => FromValue (BoltEnum a) Source # | |
(Generic a, GToValue (Rep a)) => ToValue (BoltEnum a) Source # | |
type Rep (BoltEnum a) Source # | |
Defined in Database.Bolt.Extras.Generic |
class GFromValue rep where Source #
gFromValue :: String -> Maybe (rep a) Source #
Instances
(GFromValue l, GFromValue r) => GFromValue (l :+: r) Source # | |
Defined in Database.Bolt.Extras.Generic | |
GFromValue cs => GFromValue (D1 meta cs) Source # | |
Defined in Database.Bolt.Extras.Generic | |
KnownSymbol name => GFromValue (C1 ('MetaCons name fixity rec) (U1 :: Type -> Type)) Source # | |
Defined in Database.Bolt.Extras.Generic |
>>>
:set -XDerivingStrategies -XDerivingVia
>>>
:load Database.Bolt.Extras Database.Bolt.Extras.Generic
>>>
import GHC.Generics
>>>
import Database.Bolt.Extras.Generic
>>>
import Database.Bolt (Value (..))