module FastDownward.SAS.VariableIndex ( VariableIndex(..), toSAS ) where

import qualified Data.Text.Lazy.Builder
import qualified Data.Text.Lazy.Builder.Int


newtype VariableIndex =
  VariableIndex { VariableIndex -> Int
unVariableIndex :: Int }
  deriving
    ( VariableIndex -> VariableIndex -> Bool
(VariableIndex -> VariableIndex -> Bool)
-> (VariableIndex -> VariableIndex -> Bool) -> Eq VariableIndex
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VariableIndex -> VariableIndex -> Bool
$c/= :: VariableIndex -> VariableIndex -> Bool
== :: VariableIndex -> VariableIndex -> Bool
$c== :: VariableIndex -> VariableIndex -> Bool
Eq, Eq VariableIndex
Eq VariableIndex
-> (VariableIndex -> VariableIndex -> Ordering)
-> (VariableIndex -> VariableIndex -> Bool)
-> (VariableIndex -> VariableIndex -> Bool)
-> (VariableIndex -> VariableIndex -> Bool)
-> (VariableIndex -> VariableIndex -> Bool)
-> (VariableIndex -> VariableIndex -> VariableIndex)
-> (VariableIndex -> VariableIndex -> VariableIndex)
-> Ord VariableIndex
VariableIndex -> VariableIndex -> Bool
VariableIndex -> VariableIndex -> Ordering
VariableIndex -> VariableIndex -> VariableIndex
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
min :: VariableIndex -> VariableIndex -> VariableIndex
$cmin :: VariableIndex -> VariableIndex -> VariableIndex
max :: VariableIndex -> VariableIndex -> VariableIndex
$cmax :: VariableIndex -> VariableIndex -> VariableIndex
>= :: VariableIndex -> VariableIndex -> Bool
$c>= :: VariableIndex -> VariableIndex -> Bool
> :: VariableIndex -> VariableIndex -> Bool
$c> :: VariableIndex -> VariableIndex -> Bool
<= :: VariableIndex -> VariableIndex -> Bool
$c<= :: VariableIndex -> VariableIndex -> Bool
< :: VariableIndex -> VariableIndex -> Bool
$c< :: VariableIndex -> VariableIndex -> Bool
compare :: VariableIndex -> VariableIndex -> Ordering
$ccompare :: VariableIndex -> VariableIndex -> Ordering
$cp1Ord :: Eq VariableIndex
Ord, Int -> VariableIndex -> ShowS
[VariableIndex] -> ShowS
VariableIndex -> String
(Int -> VariableIndex -> ShowS)
-> (VariableIndex -> String)
-> ([VariableIndex] -> ShowS)
-> Show VariableIndex
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [VariableIndex] -> ShowS
$cshowList :: [VariableIndex] -> ShowS
show :: VariableIndex -> String
$cshow :: VariableIndex -> String
showsPrec :: Int -> VariableIndex -> ShowS
$cshowsPrec :: Int -> VariableIndex -> ShowS
Show )


toSAS :: VariableIndex -> Data.Text.Lazy.Builder.Builder
toSAS :: VariableIndex -> Builder
toSAS ( VariableIndex Int
i ) =
  Int -> Builder
forall a. Integral a => a -> Builder
Data.Text.Lazy.Builder.Int.decimal Int
i