packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/PerformanceMeasureOptions.hs

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from user-timing (webref). Do not edit.
module JSDOM.Generated.PerformanceMeasureOptions
       (newPerformanceMeasureOptions, setDetail, getDetail, setStart, getStart, getStartUnsafe, getStartUnchecked, setDuration, getDuration, getDurationUnsafe, getDurationUnchecked, setEnd, getEnd, getEndUnsafe, getEndUnchecked, PerformanceMeasureOptions(..), gTypePerformanceMeasureOptions)
       where
import Prelude ((.), (==), (>>=), (<$>), (++), Bool(..), Maybe(..), IO, Int, Word, Double, Float)
import qualified Prelude as P
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import Language.Javascript.JSaddle (JSM, JSVal, JSString, toJSVal, valToBool, valToNumber, js, jss, jsf, jsg, new, function, asyncFunction, jsUndefined, jsNull)
import JSDOM.Types
import qualified JSDOM.Types as Types
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Generated.Enums

-- | <https://w3c.github.io/user-timing/#dictdef-performancemeasureoptions PerformanceMeasureOptions specification>
newPerformanceMeasureOptions :: (MonadDOM m) => m PerformanceMeasureOptions
newPerformanceMeasureOptions = liftDOM ((((new (jsg "Object") () >>= \o -> P.return o)) >>= fromJSValUnchecked))

-- | <https://w3c.github.io/user-timing/#dom-performancemeasureoptions-detail PerformanceMeasureOptions.detail specification>
setDetail :: (MonadDOM m) => PerformanceMeasureOptions -> JSVal -> m ()
setDetail self val = liftDOM (void (self ^. jss "detail" (toJSVal val)))

-- | <https://w3c.github.io/user-timing/#dom-performancemeasureoptions-detail PerformanceMeasureOptions.detail specification>
getDetail :: (MonadDOM m) => PerformanceMeasureOptions -> m JSVal
getDetail self = liftDOM (self ^. js "detail")

-- | <https://w3c.github.io/user-timing/#dom-performancemeasureoptions-start PerformanceMeasureOptions.start specification>
setStart :: (MonadDOM m, IsStringOrDOMHighResTimeStamp val) => PerformanceMeasureOptions -> val -> m ()
setStart self val = liftDOM (void (self ^. jss "start" (toJSVal val)))

-- | <https://w3c.github.io/user-timing/#dom-performancemeasureoptions-start PerformanceMeasureOptions.start specification>
getStart :: (MonadDOM m) => PerformanceMeasureOptions -> m (Maybe StringOrDOMHighResTimeStamp)
getStart self = liftDOM (((self ^. js "start") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/user-timing/#dom-performancemeasureoptions-start PerformanceMeasureOptions.start specification>
getStartUnsafe :: (MonadDOM m, HasCallStack) => PerformanceMeasureOptions -> m StringOrDOMHighResTimeStamp
getStartUnsafe self = liftDOM ((((self ^. js "start") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://w3c.github.io/user-timing/#dom-performancemeasureoptions-start PerformanceMeasureOptions.start specification>
getStartUnchecked :: (MonadDOM m) => PerformanceMeasureOptions -> m StringOrDOMHighResTimeStamp
getStartUnchecked self = liftDOM (((self ^. js "start") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/user-timing/#dom-performancemeasureoptions-duration PerformanceMeasureOptions.duration specification>
setDuration :: (MonadDOM m) => PerformanceMeasureOptions -> Double -> m ()
setDuration self val = liftDOM (void (self ^. jss "duration" (toJSVal val)))

-- | <https://w3c.github.io/user-timing/#dom-performancemeasureoptions-duration PerformanceMeasureOptions.duration specification>
getDuration :: (MonadDOM m) => PerformanceMeasureOptions -> m (Maybe Double)
getDuration self = liftDOM (((self ^. js "duration") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/user-timing/#dom-performancemeasureoptions-duration PerformanceMeasureOptions.duration specification>
getDurationUnsafe :: (MonadDOM m, HasCallStack) => PerformanceMeasureOptions -> m Double
getDurationUnsafe self = liftDOM ((((self ^. js "duration") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://w3c.github.io/user-timing/#dom-performancemeasureoptions-duration PerformanceMeasureOptions.duration specification>
getDurationUnchecked :: (MonadDOM m) => PerformanceMeasureOptions -> m Double
getDurationUnchecked self = liftDOM (((self ^. js "duration") >>= valToNumber))

-- | <https://w3c.github.io/user-timing/#dom-performancemeasureoptions-end PerformanceMeasureOptions.end specification>
setEnd :: (MonadDOM m, IsStringOrDOMHighResTimeStamp val) => PerformanceMeasureOptions -> val -> m ()
setEnd self val = liftDOM (void (self ^. jss "end" (toJSVal val)))

-- | <https://w3c.github.io/user-timing/#dom-performancemeasureoptions-end PerformanceMeasureOptions.end specification>
getEnd :: (MonadDOM m) => PerformanceMeasureOptions -> m (Maybe StringOrDOMHighResTimeStamp)
getEnd self = liftDOM (((self ^. js "end") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/user-timing/#dom-performancemeasureoptions-end PerformanceMeasureOptions.end specification>
getEndUnsafe :: (MonadDOM m, HasCallStack) => PerformanceMeasureOptions -> m StringOrDOMHighResTimeStamp
getEndUnsafe self = liftDOM ((((self ^. js "end") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://w3c.github.io/user-timing/#dom-performancemeasureoptions-end PerformanceMeasureOptions.end specification>
getEndUnchecked :: (MonadDOM m) => PerformanceMeasureOptions -> m StringOrDOMHighResTimeStamp
getEndUnchecked self = liftDOM (((self ^. js "end") >>= fromJSValUnchecked))