| Copyright | 2013 Kei Hibino |
|---|---|
| License | BSD3 |
| Maintainer | ex8k.hibino@gmail.com |
| Stability | experimental |
| Portability | unknown |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Database.Record.Persistable
Description
This module defines interfaces between Haskell type and list of SQL type.
- data PersistableSqlType q
- runPersistableNullValue :: PersistableSqlType q -> q
- unsafePersistableSqlTypeFromNull :: q -> PersistableSqlType q
- data PersistableRecordWidth a
- runPersistableRecordWidth :: PersistableRecordWidth a -> Int
- unsafePersistableRecordWidth :: Int -> PersistableRecordWidth a
- unsafeValueWidth :: PersistableRecordWidth a
- (<&>) :: PersistableRecordWidth a -> PersistableRecordWidth b -> PersistableRecordWidth (a, b)
- maybeWidth :: PersistableRecordWidth a -> PersistableRecordWidth (Maybe a)
- class Eq q => PersistableType q where
- sqlNullValue :: PersistableType q => q
- class PersistableWidth a where
- derivedWidth :: PersistableWidth a => (PersistableRecordWidth a, Int)
Specify SQL type
data PersistableSqlType q Source
Proof object to specify type q is SQL type
runPersistableNullValue :: PersistableSqlType q -> q Source
Null value of SQL type q.
unsafePersistableSqlTypeFromNull Source
Arguments
| :: q | SQL null value of SQL type |
| -> PersistableSqlType q | Result proof object |
Unsafely generate PersistableSqlType proof object from specified SQL null value which type is q.
Specify record width
data PersistableRecordWidth a Source
Proof object to specify width of Haskell type a
when converting to SQL type list.
runPersistableRecordWidth :: PersistableRecordWidth a -> Int Source
Get width Int value of record type a.
unsafePersistableRecordWidth Source
Arguments
| :: Int | Specify width of Haskell type |
| -> PersistableRecordWidth a | Result proof object |
Unsafely generate PersistableRecordWidth proof object from specified width of Haskell type a.
unsafeValueWidth :: PersistableRecordWidth a Source
Unsafely generate PersistableRecordWidth proof object for Haskell type a which is single column type.
(<&>) :: PersistableRecordWidth a -> PersistableRecordWidth b -> PersistableRecordWidth (a, b) Source
Derivation rule of PersistableRecordWidth for tuple (,) type.
maybeWidth :: PersistableRecordWidth a -> PersistableRecordWidth (Maybe a) Source
Derivation rule of PersistableRecordWidth from from Haskell type a into for Haskell type Maybe a.
Inference rules for proof objects
class Eq q => PersistableType q where Source
Interface of inference rule for PersistableSqlType proof object
Methods
sqlNullValue :: PersistableType q => q Source
Inferred Null value of SQL type.
class PersistableWidth a where Source
Interface of inference rule for PersistableRecordWidth proof object
Methods
Instances
| PersistableWidth () Source | Inference rule of |
| PersistableWidth a => PersistableWidth (Maybe a) Source | Inference rule of |
| (PersistableWidth a, PersistableWidth b) => PersistableWidth (a, b) Source | Inference rule of |
derivedWidth :: PersistableWidth a => (PersistableRecordWidth a, Int) Source
Pass type parameter and inferred width value.