jsaddle-dom-0.10.0.0: src/JSDOM/Generated/GPUBufferBinding.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.GPUBufferBinding
(newGPUBufferBinding, setBuffer, getBuffer, setOffset, getOffset, getOffsetUnsafe, getOffsetUnchecked, setSize, getSize, getSizeUnsafe, getSizeUnchecked, GPUBufferBinding(..), gTypeGPUBufferBinding)
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-gpubufferbinding GPUBufferBinding specification>
newGPUBufferBinding :: (MonadDOM m) => GPUBuffer -> m GPUBufferBinding
newGPUBufferBinding buffer = liftDOM ((((new (jsg "Object") () >>= \o -> (o ^. jss "buffer" (toJSVal buffer)) P.>> P.return o)) >>= fromJSValUnchecked))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbinding-buffer GPUBufferBinding.buffer specification>
setBuffer :: (MonadDOM m) => GPUBufferBinding -> GPUBuffer -> m ()
setBuffer self val = liftDOM (void (self ^. jss "buffer" (toJSVal val)))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbinding-buffer GPUBufferBinding.buffer specification>
getBuffer :: (MonadDOM m) => GPUBufferBinding -> m GPUBuffer
getBuffer self = liftDOM (((self ^. js "buffer") >>= fromJSValUnchecked))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbinding-offset GPUBufferBinding.offset specification>
setOffset :: (MonadDOM m) => GPUBufferBinding -> Word53 -> m ()
setOffset self val = liftDOM (void (self ^. jss "offset" (toJSVal val)))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbinding-offset GPUBufferBinding.offset specification>
getOffset :: (MonadDOM m) => GPUBufferBinding -> m (Maybe Word53)
getOffset self = liftDOM (((self ^. js "offset") >>= fromJSValUnchecked))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbinding-offset GPUBufferBinding.offset specification>
getOffsetUnsafe :: (MonadDOM m, HasCallStack) => GPUBufferBinding -> m Word53
getOffsetUnsafe self = liftDOM ((((self ^. js "offset") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbinding-offset GPUBufferBinding.offset specification>
getOffsetUnchecked :: (MonadDOM m) => GPUBufferBinding -> m Word53
getOffsetUnchecked self = liftDOM (((self ^. js "offset") >>= fromJSValUnchecked))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbinding-size GPUBufferBinding.size specification>
setSize :: (MonadDOM m) => GPUBufferBinding -> Word53 -> m ()
setSize self val = liftDOM (void (self ^. jss "size" (toJSVal val)))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbinding-size GPUBufferBinding.size specification>
getSize :: (MonadDOM m) => GPUBufferBinding -> m (Maybe Word53)
getSize self = liftDOM (((self ^. js "size") >>= fromJSValUnchecked))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbinding-size GPUBufferBinding.size specification>
getSizeUnsafe :: (MonadDOM m, HasCallStack) => GPUBufferBinding -> m Word53
getSizeUnsafe self = liftDOM ((((self ^. js "size") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))
-- | <https://gpuweb.github.io/gpuweb/#dom-gpubufferbinding-size GPUBufferBinding.size specification>
getSizeUnchecked :: (MonadDOM m) => GPUBufferBinding -> m Word53
getSizeUnchecked self = liftDOM (((self ^. js "size") >>= fromJSValUnchecked))