{-# OPTIONS_HADDOCK not-home #-}

module Database.LSMTree.Internal.RunNumber (
    RunNumber (..),
    TableId (..),
    CursorId (..),
) where

import           Control.DeepSeq (NFData)

newtype RunNumber = RunNumber Int
  deriving stock (RunNumber -> RunNumber -> Bool
(RunNumber -> RunNumber -> Bool)
-> (RunNumber -> RunNumber -> Bool) -> Eq RunNumber
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: RunNumber -> RunNumber -> Bool
== :: RunNumber -> RunNumber -> Bool
$c/= :: RunNumber -> RunNumber -> Bool
/= :: RunNumber -> RunNumber -> Bool
Eq, Eq RunNumber
Eq RunNumber =>
(RunNumber -> RunNumber -> Ordering)
-> (RunNumber -> RunNumber -> Bool)
-> (RunNumber -> RunNumber -> Bool)
-> (RunNumber -> RunNumber -> Bool)
-> (RunNumber -> RunNumber -> Bool)
-> (RunNumber -> RunNumber -> RunNumber)
-> (RunNumber -> RunNumber -> RunNumber)
-> Ord RunNumber
RunNumber -> RunNumber -> Bool
RunNumber -> RunNumber -> Ordering
RunNumber -> RunNumber -> RunNumber
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: RunNumber -> RunNumber -> Ordering
compare :: RunNumber -> RunNumber -> Ordering
$c< :: RunNumber -> RunNumber -> Bool
< :: RunNumber -> RunNumber -> Bool
$c<= :: RunNumber -> RunNumber -> Bool
<= :: RunNumber -> RunNumber -> Bool
$c> :: RunNumber -> RunNumber -> Bool
> :: RunNumber -> RunNumber -> Bool
$c>= :: RunNumber -> RunNumber -> Bool
>= :: RunNumber -> RunNumber -> Bool
$cmax :: RunNumber -> RunNumber -> RunNumber
max :: RunNumber -> RunNumber -> RunNumber
$cmin :: RunNumber -> RunNumber -> RunNumber
min :: RunNumber -> RunNumber -> RunNumber
Ord, Int -> RunNumber -> ShowS
[RunNumber] -> ShowS
RunNumber -> String
(Int -> RunNumber -> ShowS)
-> (RunNumber -> String)
-> ([RunNumber] -> ShowS)
-> Show RunNumber
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> RunNumber -> ShowS
showsPrec :: Int -> RunNumber -> ShowS
$cshow :: RunNumber -> String
show :: RunNumber -> String
$cshowList :: [RunNumber] -> ShowS
showList :: [RunNumber] -> ShowS
Show)
  deriving newtype (RunNumber -> ()
(RunNumber -> ()) -> NFData RunNumber
forall a. (a -> ()) -> NFData a
$crnf :: RunNumber -> ()
rnf :: RunNumber -> ()
NFData)

newtype TableId = TableId Int
  deriving stock (TableId -> TableId -> Bool
(TableId -> TableId -> Bool)
-> (TableId -> TableId -> Bool) -> Eq TableId
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TableId -> TableId -> Bool
== :: TableId -> TableId -> Bool
$c/= :: TableId -> TableId -> Bool
/= :: TableId -> TableId -> Bool
Eq, Eq TableId
Eq TableId =>
(TableId -> TableId -> Ordering)
-> (TableId -> TableId -> Bool)
-> (TableId -> TableId -> Bool)
-> (TableId -> TableId -> Bool)
-> (TableId -> TableId -> Bool)
-> (TableId -> TableId -> TableId)
-> (TableId -> TableId -> TableId)
-> Ord TableId
TableId -> TableId -> Bool
TableId -> TableId -> Ordering
TableId -> TableId -> TableId
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: TableId -> TableId -> Ordering
compare :: TableId -> TableId -> Ordering
$c< :: TableId -> TableId -> Bool
< :: TableId -> TableId -> Bool
$c<= :: TableId -> TableId -> Bool
<= :: TableId -> TableId -> Bool
$c> :: TableId -> TableId -> Bool
> :: TableId -> TableId -> Bool
$c>= :: TableId -> TableId -> Bool
>= :: TableId -> TableId -> Bool
$cmax :: TableId -> TableId -> TableId
max :: TableId -> TableId -> TableId
$cmin :: TableId -> TableId -> TableId
min :: TableId -> TableId -> TableId
Ord, Int -> TableId -> ShowS
[TableId] -> ShowS
TableId -> String
(Int -> TableId -> ShowS)
-> (TableId -> String) -> ([TableId] -> ShowS) -> Show TableId
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TableId -> ShowS
showsPrec :: Int -> TableId -> ShowS
$cshow :: TableId -> String
show :: TableId -> String
$cshowList :: [TableId] -> ShowS
showList :: [TableId] -> ShowS
Show)
  deriving newtype (TableId -> ()
(TableId -> ()) -> NFData TableId
forall a. (a -> ()) -> NFData a
$crnf :: TableId -> ()
rnf :: TableId -> ()
NFData)

newtype CursorId = CursorId Int
  deriving stock (CursorId -> CursorId -> Bool
(CursorId -> CursorId -> Bool)
-> (CursorId -> CursorId -> Bool) -> Eq CursorId
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CursorId -> CursorId -> Bool
== :: CursorId -> CursorId -> Bool
$c/= :: CursorId -> CursorId -> Bool
/= :: CursorId -> CursorId -> Bool
Eq, Eq CursorId
Eq CursorId =>
(CursorId -> CursorId -> Ordering)
-> (CursorId -> CursorId -> Bool)
-> (CursorId -> CursorId -> Bool)
-> (CursorId -> CursorId -> Bool)
-> (CursorId -> CursorId -> Bool)
-> (CursorId -> CursorId -> CursorId)
-> (CursorId -> CursorId -> CursorId)
-> Ord CursorId
CursorId -> CursorId -> Bool
CursorId -> CursorId -> Ordering
CursorId -> CursorId -> CursorId
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: CursorId -> CursorId -> Ordering
compare :: CursorId -> CursorId -> Ordering
$c< :: CursorId -> CursorId -> Bool
< :: CursorId -> CursorId -> Bool
$c<= :: CursorId -> CursorId -> Bool
<= :: CursorId -> CursorId -> Bool
$c> :: CursorId -> CursorId -> Bool
> :: CursorId -> CursorId -> Bool
$c>= :: CursorId -> CursorId -> Bool
>= :: CursorId -> CursorId -> Bool
$cmax :: CursorId -> CursorId -> CursorId
max :: CursorId -> CursorId -> CursorId
$cmin :: CursorId -> CursorId -> CursorId
min :: CursorId -> CursorId -> CursorId
Ord, Int -> CursorId -> ShowS
[CursorId] -> ShowS
CursorId -> String
(Int -> CursorId -> ShowS)
-> (CursorId -> String) -> ([CursorId] -> ShowS) -> Show CursorId
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CursorId -> ShowS
showsPrec :: Int -> CursorId -> ShowS
$cshow :: CursorId -> String
show :: CursorId -> String
$cshowList :: [CursorId] -> ShowS
showList :: [CursorId] -> ShowS
Show)
  deriving newtype (CursorId -> ()
(CursorId -> ()) -> NFData CursorId
forall a. (a -> ()) -> NFData a
$crnf :: CursorId -> ()
rnf :: CursorId -> ()
NFData)