{-# LINE 1 "src/Numeric/HiGHS/LP/Enumeration.hsc" #-}
module Numeric.HiGHS.LP.Enumeration where

import qualified Numeric.HiGHS.LP.FFI as Highs




data ModelStatus =
     ModelStatusNotset
   | ModelStatusLoadError
   | ModelStatusModelError
   | ModelStatusPresolveError
   | ModelStatusSolveError
   | ModelStatusPostsolveError
   | ModelStatusModelEmpty
   | ModelStatusOptimal
   | ModelStatusInfeasible
   | ModelStatusUnboundedOrInfeasible
   | ModelStatusUnbounded
   | ModelStatusObjectiveBound
   | ModelStatusObjectiveTarget
   | ModelStatusTimeLimit
   | ModelStatusIterationLimit
   | ModelStatusUnknown
   | ModelStatusSolutionLimit
   | ModelStatusInterrupt
   deriving (ModelStatus -> ModelStatus -> Bool
(ModelStatus -> ModelStatus -> Bool)
-> (ModelStatus -> ModelStatus -> Bool) -> Eq ModelStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ModelStatus -> ModelStatus -> Bool
== :: ModelStatus -> ModelStatus -> Bool
$c/= :: ModelStatus -> ModelStatus -> Bool
/= :: ModelStatus -> ModelStatus -> Bool
Eq, Int -> ModelStatus -> ShowS
[ModelStatus] -> ShowS
ModelStatus -> String
(Int -> ModelStatus -> ShowS)
-> (ModelStatus -> String)
-> ([ModelStatus] -> ShowS)
-> Show ModelStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ModelStatus -> ShowS
showsPrec :: Int -> ModelStatus -> ShowS
$cshow :: ModelStatus -> String
show :: ModelStatus -> String
$cshowList :: [ModelStatus] -> ShowS
showList :: [ModelStatus] -> ShowS
Show)


modelStatusFromC :: Highs.ModelStatus -> ModelStatus
modelStatusFromC :: ModelStatus -> ModelStatus
modelStatusFromC (Highs.ModelStatus HighsInt
status) =
   case HighsInt
status of
      (HighsInt
0) ->
{-# LINE 34 "src/Numeric/HiGHS/LP/Enumeration.hsc" #-}
         ModelStatus
ModelStatusNotset
      (HighsInt
1) ->
{-# LINE 36 "src/Numeric/HiGHS/LP/Enumeration.hsc" #-}
         ModelStatus
ModelStatusLoadError
      (HighsInt
2) ->
{-# LINE 38 "src/Numeric/HiGHS/LP/Enumeration.hsc" #-}
         ModelStatus
ModelStatusModelError
      (HighsInt
3) ->
{-# LINE 40 "src/Numeric/HiGHS/LP/Enumeration.hsc" #-}
         ModelStatus
ModelStatusPresolveError
      (HighsInt
4) ->
{-# LINE 42 "src/Numeric/HiGHS/LP/Enumeration.hsc" #-}
         ModelStatus
ModelStatusSolveError
      (HighsInt
5) ->
{-# LINE 44 "src/Numeric/HiGHS/LP/Enumeration.hsc" #-}
         ModelStatus
ModelStatusPostsolveError
      (HighsInt
6) ->
{-# LINE 46 "src/Numeric/HiGHS/LP/Enumeration.hsc" #-}
         ModelStatus
ModelStatusModelEmpty
      (HighsInt
7) ->
{-# LINE 48 "src/Numeric/HiGHS/LP/Enumeration.hsc" #-}
         ModelStatus
ModelStatusOptimal
      (HighsInt
8) ->
{-# LINE 50 "src/Numeric/HiGHS/LP/Enumeration.hsc" #-}
         ModelStatus
ModelStatusInfeasible
      (HighsInt
9) ->
{-# LINE 52 "src/Numeric/HiGHS/LP/Enumeration.hsc" #-}
         ModelStatus
ModelStatusUnboundedOrInfeasible
      (HighsInt
10) ->
{-# LINE 54 "src/Numeric/HiGHS/LP/Enumeration.hsc" #-}
         ModelStatus
ModelStatusUnbounded
      (HighsInt
11) ->
{-# LINE 56 "src/Numeric/HiGHS/LP/Enumeration.hsc" #-}
         ModelStatus
ModelStatusObjectiveBound
      (HighsInt
12) ->
{-# LINE 58 "src/Numeric/HiGHS/LP/Enumeration.hsc" #-}
         ModelStatus
ModelStatusObjectiveTarget
      (HighsInt
13) ->
{-# LINE 60 "src/Numeric/HiGHS/LP/Enumeration.hsc" #-}
         ModelStatus
ModelStatusTimeLimit
      (HighsInt
14) ->
{-# LINE 62 "src/Numeric/HiGHS/LP/Enumeration.hsc" #-}
         ModelStatus
ModelStatusIterationLimit
      (HighsInt
15) ->
{-# LINE 64 "src/Numeric/HiGHS/LP/Enumeration.hsc" #-}
         ModelStatus
ModelStatusUnknown
      (HighsInt
16) ->
{-# LINE 66 "src/Numeric/HiGHS/LP/Enumeration.hsc" #-}
         ModelStatus
ModelStatusSolutionLimit
      (HighsInt
17) ->
{-# LINE 68 "src/Numeric/HiGHS/LP/Enumeration.hsc" #-}
         ModelStatus
ModelStatusInterrupt
      HighsInt
_ -> String -> ModelStatus
forall a. HasCallStack => String -> a
error (String -> ModelStatus) -> String -> ModelStatus
forall a b. (a -> b) -> a -> b
$ String
"unknown model status " String -> ShowS
forall a. [a] -> [a] -> [a]
++ HighsInt -> String
forall a. Show a => a -> String
show HighsInt
status