module Database.RethinkDB.Types (
Database(..),
Table(..),
Key,
Index(..)
) where
import qualified Data.Text as Text
import Data.Text (Text, pack)
import Data.String
type Key = Text
data Database = Database {
databaseName :: Text
} deriving (Eq, Ord)
instance Show Database where
show (Database d) = show d
instance IsString Database where
fromString name = Database $ fromString name
data Table = Table {
tableDatabase :: Maybe Database,
tableName :: Text,
tablePrimaryKey :: Maybe Key
} deriving (Eq, Ord)
instance Show Table where
show (Table db' nam mkey) =
maybe "" (\(Database d) -> Text.unpack d++".") db' ++ Text.unpack nam ++
maybe "" (\k -> "[" ++ show k ++ "]") mkey
instance IsString Table where
fromString name = Table Nothing (fromString name) Nothing
data Index =
PrimaryKey |
Index Key
instance IsString Index where
fromString = Index . pack