hmemdb-0.1.0.0: src/Data/HMemDb.hs
{-# LANGUAGE GADTs, KindSignatures, TypeOperators #-}
-- | This library allows one to create mutable (but thread-safe)
-- lists of values and access them quickly
-- with certain automatically updated indices (foreign keys).
module Data.HMemDb
(
MS,
GS,
SP,
-- * Tables
Table,
TableVar,
TableVarS,
forTV,
deleteTV,
modifyTV,
readTV,
ForeignKey,
keyTarget,
-- * Specs
FullSpec(FullSpec, keySpec, tabSpec),
-- ** Table specs
TableSpec(TableSpec),
ColSpec,
val,
key,
-- ** Key specs
KeySpec,
unique,
nonunique,
-- * Creating tables
createTable,
Keys(Keys),
RefContainer,
IsKeySpec,
(:+:)((:+:)),
CreateTable,
-- * Basic operations
insert,
select,
delete,
update,
-- * Serialization
getTable,
putTable,
)
where
import Data.HMemDb.Binary (GS, MS, SP)
import Data.HMemDb.CreateTable (CreateTable, IsKeySpec, createTable)
import Data.HMemDb.ForeignKeys (ForeignKey, delete, keyTarget, select, update)
import Data.HMemDb.Persistence (getTable, putTable)
import Data.HMemDb.RefContainer (RefContainer)
import Data.HMemDb.Specs
(ColSpec, FullSpec(FullSpec, keySpec, tabSpec),
Keys(Keys), KeySpec, TableSpec(TableSpec),
key, nonunique, val, unique, (:+:)((:+:)))
import Data.HMemDb.Tables (Table)
import Data.HMemDb.TableVars
(TableVar, TableVarS, deleteTV, forTV, insert, modifyTV, readTV)