packages feed

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

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from webgpu (webref). Do not edit.
module JSDOM.Generated.GPUDeviceDescriptor
       (newGPUDeviceDescriptor, setRequiredFeatures, getRequiredFeatures, getRequiredFeaturesUnsafe, getRequiredFeaturesUnchecked, setRequiredLimits, getRequiredLimits, getRequiredLimitsUnsafe, getRequiredLimitsUnchecked, setDefaultQueue, getDefaultQueue, getDefaultQueueUnsafe, getDefaultQueueUnchecked, GPUDeviceDescriptor(..), gTypeGPUDeviceDescriptor)
       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://gpuweb.github.io/gpuweb/#gpudevicedescriptor GPUDeviceDescriptor specification>
newGPUDeviceDescriptor :: (MonadDOM m) => m GPUDeviceDescriptor
newGPUDeviceDescriptor = liftDOM ((((new (jsg "Object") () >>= \o -> P.return o)) >>= fromJSValUnchecked))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpudevicedescriptor-requiredfeatures GPUDeviceDescriptor.requiredFeatures specification>
setRequiredFeatures :: (MonadDOM m) => GPUDeviceDescriptor -> [GPUFeatureName] -> m ()
setRequiredFeatures self val = liftDOM (void (self ^. jss "requiredFeatures" (toJSVal val)))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpudevicedescriptor-requiredfeatures GPUDeviceDescriptor.requiredFeatures specification>
getRequiredFeatures :: (MonadDOM m) => GPUDeviceDescriptor -> m (Maybe [GPUFeatureName])
getRequiredFeatures self = liftDOM (((self ^. js "requiredFeatures") >>= fromJSValUnchecked))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpudevicedescriptor-requiredfeatures GPUDeviceDescriptor.requiredFeatures specification>
getRequiredFeaturesUnsafe :: (MonadDOM m, HasCallStack) => GPUDeviceDescriptor -> m [GPUFeatureName]
getRequiredFeaturesUnsafe self = liftDOM ((((self ^. js "requiredFeatures") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpudevicedescriptor-requiredfeatures GPUDeviceDescriptor.requiredFeatures specification>
getRequiredFeaturesUnchecked :: (MonadDOM m) => GPUDeviceDescriptor -> m [GPUFeatureName]
getRequiredFeaturesUnchecked self = liftDOM (((self ^. js "requiredFeatures") >>= fromJSValUnchecked))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpudevicedescriptor-requiredlimits GPUDeviceDescriptor.requiredLimits specification>
setRequiredLimits :: (MonadDOM m) => GPUDeviceDescriptor -> (Record JSString JSVal) -> m ()
setRequiredLimits self val = liftDOM (void (self ^. jss "requiredLimits" (toJSVal val)))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpudevicedescriptor-requiredlimits GPUDeviceDescriptor.requiredLimits specification>
getRequiredLimits :: (MonadDOM m) => GPUDeviceDescriptor -> m (Maybe (Record JSString JSVal))
getRequiredLimits self = liftDOM (((self ^. js "requiredLimits") >>= fromJSValUnchecked))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpudevicedescriptor-requiredlimits GPUDeviceDescriptor.requiredLimits specification>
getRequiredLimitsUnsafe :: (MonadDOM m, HasCallStack) => GPUDeviceDescriptor -> m (Record JSString JSVal)
getRequiredLimitsUnsafe self = liftDOM ((((self ^. js "requiredLimits") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpudevicedescriptor-requiredlimits GPUDeviceDescriptor.requiredLimits specification>
getRequiredLimitsUnchecked :: (MonadDOM m) => GPUDeviceDescriptor -> m (Record JSString JSVal)
getRequiredLimitsUnchecked self = liftDOM (((self ^. js "requiredLimits") >>= fromJSValUnchecked))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpudevicedescriptor-defaultqueue GPUDeviceDescriptor.defaultQueue specification>
setDefaultQueue :: (MonadDOM m) => GPUDeviceDescriptor -> GPUQueueDescriptor -> m ()
setDefaultQueue self val = liftDOM (void (self ^. jss "defaultQueue" (toJSVal val)))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpudevicedescriptor-defaultqueue GPUDeviceDescriptor.defaultQueue specification>
getDefaultQueue :: (MonadDOM m) => GPUDeviceDescriptor -> m (Maybe GPUQueueDescriptor)
getDefaultQueue self = liftDOM (((self ^. js "defaultQueue") >>= fromJSValUnchecked))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpudevicedescriptor-defaultqueue GPUDeviceDescriptor.defaultQueue specification>
getDefaultQueueUnsafe :: (MonadDOM m, HasCallStack) => GPUDeviceDescriptor -> m GPUQueueDescriptor
getDefaultQueueUnsafe self = liftDOM ((((self ^. js "defaultQueue") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpudevicedescriptor-defaultqueue GPUDeviceDescriptor.defaultQueue specification>
getDefaultQueueUnchecked :: (MonadDOM m) => GPUDeviceDescriptor -> m GPUQueueDescriptor
getDefaultQueueUnchecked self = liftDOM (((self ^. js "defaultQueue") >>= fromJSValUnchecked))