packages feed

jsaddle-dom-0.10.0.0: src/JSDOM/Generated/GPUBufferBindingLayout.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.GPUBufferBindingLayout
       (newGPUBufferBindingLayout, setType, getType, getTypeUnsafe, getTypeUnchecked, setHasDynamicOffset, getHasDynamicOffset, getHasDynamicOffsetUnsafe, getHasDynamicOffsetUnchecked, setMinBindingSize, getMinBindingSize, getMinBindingSizeUnsafe, getMinBindingSizeUnchecked, GPUBufferBindingLayout(..), gTypeGPUBufferBindingLayout)
       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/#dictdef-gpubufferbindinglayout GPUBufferBindingLayout specification>
newGPUBufferBindingLayout :: (MonadDOM m) => m GPUBufferBindingLayout
newGPUBufferBindingLayout = liftDOM ((((new (jsg "Object") () >>= \o -> P.return o)) >>= fromJSValUnchecked))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbindinglayout-type GPUBufferBindingLayout.type specification>
setType :: (MonadDOM m) => GPUBufferBindingLayout -> GPUBufferBindingType -> m ()
setType self val = liftDOM (void (self ^. jss "type" (toJSVal val)))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbindinglayout-type GPUBufferBindingLayout.type specification>
getType :: (MonadDOM m) => GPUBufferBindingLayout -> m (Maybe GPUBufferBindingType)
getType self = liftDOM (((self ^. js "type") >>= fromJSValUnchecked))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbindinglayout-type GPUBufferBindingLayout.type specification>
getTypeUnsafe :: (MonadDOM m, HasCallStack) => GPUBufferBindingLayout -> m GPUBufferBindingType
getTypeUnsafe self = liftDOM ((((self ^. js "type") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbindinglayout-type GPUBufferBindingLayout.type specification>
getTypeUnchecked :: (MonadDOM m) => GPUBufferBindingLayout -> m GPUBufferBindingType
getTypeUnchecked self = liftDOM (((self ^. js "type") >>= fromJSValUnchecked))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbindinglayout-hasdynamicoffset GPUBufferBindingLayout.hasDynamicOffset specification>
setHasDynamicOffset :: (MonadDOM m) => GPUBufferBindingLayout -> Bool -> m ()
setHasDynamicOffset self val = liftDOM (void (self ^. jss "hasDynamicOffset" (toJSVal val)))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbindinglayout-hasdynamicoffset GPUBufferBindingLayout.hasDynamicOffset specification>
getHasDynamicOffset :: (MonadDOM m) => GPUBufferBindingLayout -> m (Maybe Bool)
getHasDynamicOffset self = liftDOM (((self ^. js "hasDynamicOffset") >>= fromJSValUnchecked))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbindinglayout-hasdynamicoffset GPUBufferBindingLayout.hasDynamicOffset specification>
getHasDynamicOffsetUnsafe :: (MonadDOM m, HasCallStack) => GPUBufferBindingLayout -> m Bool
getHasDynamicOffsetUnsafe self = liftDOM ((((self ^. js "hasDynamicOffset") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbindinglayout-hasdynamicoffset GPUBufferBindingLayout.hasDynamicOffset specification>
getHasDynamicOffsetUnchecked :: (MonadDOM m) => GPUBufferBindingLayout -> m Bool
getHasDynamicOffsetUnchecked self = liftDOM (((self ^. js "hasDynamicOffset") >>= valToBool))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbindinglayout-minbindingsize GPUBufferBindingLayout.minBindingSize specification>
setMinBindingSize :: (MonadDOM m) => GPUBufferBindingLayout -> Word53 -> m ()
setMinBindingSize self val = liftDOM (void (self ^. jss "minBindingSize" (toJSVal val)))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbindinglayout-minbindingsize GPUBufferBindingLayout.minBindingSize specification>
getMinBindingSize :: (MonadDOM m) => GPUBufferBindingLayout -> m (Maybe Word53)
getMinBindingSize self = liftDOM (((self ^. js "minBindingSize") >>= fromJSValUnchecked))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbindinglayout-minbindingsize GPUBufferBindingLayout.minBindingSize specification>
getMinBindingSizeUnsafe :: (MonadDOM m, HasCallStack) => GPUBufferBindingLayout -> m Word53
getMinBindingSizeUnsafe self = liftDOM ((((self ^. js "minBindingSize") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbindinglayout-minbindingsize GPUBufferBindingLayout.minBindingSize specification>
getMinBindingSizeUnchecked :: (MonadDOM m) => GPUBufferBindingLayout -> m Word53
getMinBindingSizeUnchecked self = liftDOM (((self ^. js "minBindingSize") >>= fromJSValUnchecked))