module Web.HTML.HTMLTrackElement.ReadyState where import Prelude import Data.Enum (class BoundedEnum, class Enum, Cardinality(..), defaultPred, defaultSucc) import Data.Maybe (Maybe(..)) data ReadyState = None | Loading | Loaded | Error derive instance eqReadyState :: Eq ReadyState derive instance ordReadyState :: Ord ReadyState instance boundedReadyState :: Bounded ReadyState where bottom = None top = Error instance enumReadyState :: Enum ReadyState where succ = defaultSucc toEnumReadyState fromEnumReadyState pred = defaultPred toEnumReadyState fromEnumReadyState instance boundedEnumReadyState :: BoundedEnum ReadyState where cardinality = Cardinality 4 toEnum = toEnumReadyState fromEnum = fromEnumReadyState instance showReadyState :: Show ReadyState where show None = "None" show Loading = "Loading" show Loaded = "Loaded" show Error = "Error" toEnumReadyState :: Int -> Maybe ReadyState toEnumReadyState = case _ of 0 -> Just None 1 -> Just Loading 2 -> Just Loaded 3 -> Just Error _ -> Nothing fromEnumReadyState :: ReadyState -> Int fromEnumReadyState = case _ of None -> 0 Loading -> 1 Loaded -> 2 Error -> 3