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

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


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


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