packages feed

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

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from webcodecs (webref). Do not edit.
module JSDOM.Generated.ImageDecodeOptions
       (newImageDecodeOptions, setFrameIndex, getFrameIndex, getFrameIndexUnsafe, getFrameIndexUnchecked, setCompleteFramesOnly, getCompleteFramesOnly, getCompleteFramesOnlyUnsafe, getCompleteFramesOnlyUnchecked, ImageDecodeOptions(..), gTypeImageDecodeOptions)
       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/webcodecs/#dictdef-imagedecodeoptions ImageDecodeOptions specification>
newImageDecodeOptions :: (MonadDOM m) => m ImageDecodeOptions
newImageDecodeOptions = liftDOM ((((new (jsg "Object") () >>= \o -> P.return o)) >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webcodecs/#dom-imagedecodeoptions-frameindex ImageDecodeOptions.frameIndex specification>
setFrameIndex :: (MonadDOM m) => ImageDecodeOptions -> Word -> m ()
setFrameIndex self val = liftDOM (void (self ^. jss "frameIndex" (toJSVal val)))

-- | <https://w3c.github.io/webcodecs/#dom-imagedecodeoptions-frameindex ImageDecodeOptions.frameIndex specification>
getFrameIndex :: (MonadDOM m) => ImageDecodeOptions -> m (Maybe Word)
getFrameIndex self = liftDOM (((self ^. js "frameIndex") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webcodecs/#dom-imagedecodeoptions-frameindex ImageDecodeOptions.frameIndex specification>
getFrameIndexUnsafe :: (MonadDOM m, HasCallStack) => ImageDecodeOptions -> m Word
getFrameIndexUnsafe self = liftDOM ((((self ^. js "frameIndex") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://w3c.github.io/webcodecs/#dom-imagedecodeoptions-frameindex ImageDecodeOptions.frameIndex specification>
getFrameIndexUnchecked :: (MonadDOM m) => ImageDecodeOptions -> m Word
getFrameIndexUnchecked self = liftDOM ((P.round <$> ((self ^. js "frameIndex") >>= valToNumber)))

-- | <https://w3c.github.io/webcodecs/#dom-imagedecodeoptions-completeframesonly ImageDecodeOptions.completeFramesOnly specification>
setCompleteFramesOnly :: (MonadDOM m) => ImageDecodeOptions -> Bool -> m ()
setCompleteFramesOnly self val = liftDOM (void (self ^. jss "completeFramesOnly" (toJSVal val)))

-- | <https://w3c.github.io/webcodecs/#dom-imagedecodeoptions-completeframesonly ImageDecodeOptions.completeFramesOnly specification>
getCompleteFramesOnly :: (MonadDOM m) => ImageDecodeOptions -> m (Maybe Bool)
getCompleteFramesOnly self = liftDOM (((self ^. js "completeFramesOnly") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webcodecs/#dom-imagedecodeoptions-completeframesonly ImageDecodeOptions.completeFramesOnly specification>
getCompleteFramesOnlyUnsafe :: (MonadDOM m, HasCallStack) => ImageDecodeOptions -> m Bool
getCompleteFramesOnlyUnsafe self = liftDOM ((((self ^. js "completeFramesOnly") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://w3c.github.io/webcodecs/#dom-imagedecodeoptions-completeframesonly ImageDecodeOptions.completeFramesOnly specification>
getCompleteFramesOnlyUnchecked :: (MonadDOM m) => ImageDecodeOptions -> m Bool
getCompleteFramesOnlyUnchecked self = liftDOM (((self ^. js "completeFramesOnly") >>= valToBool))