packages feed

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

{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- | Generated by dom-gen from webtransport (webref). Do not edit.
module JSDOM.Generated.WebTransportCloseInfo
       (newWebTransportCloseInfo, setCloseCode, getCloseCode, getCloseCodeUnsafe, getCloseCodeUnchecked, setReason, getReason, getReasonUnsafe, getReasonUnchecked, WebTransportCloseInfo(..), gTypeWebTransportCloseInfo)
       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/webtransport/#dictdef-webtransportcloseinfo WebTransportCloseInfo specification>
newWebTransportCloseInfo :: (MonadDOM m) => m WebTransportCloseInfo
newWebTransportCloseInfo = liftDOM ((((new (jsg "Object") () >>= \o -> P.return o)) >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webtransport/#dom-webtransportcloseinfo-closecode WebTransportCloseInfo.closeCode specification>
setCloseCode :: (MonadDOM m) => WebTransportCloseInfo -> Word -> m ()
setCloseCode self val = liftDOM (void (self ^. jss "closeCode" (toJSVal val)))

-- | <https://w3c.github.io/webtransport/#dom-webtransportcloseinfo-closecode WebTransportCloseInfo.closeCode specification>
getCloseCode :: (MonadDOM m) => WebTransportCloseInfo -> m (Maybe Word)
getCloseCode self = liftDOM (((self ^. js "closeCode") >>= fromJSValUnchecked))

-- | <https://w3c.github.io/webtransport/#dom-webtransportcloseinfo-closecode WebTransportCloseInfo.closeCode specification>
getCloseCodeUnsafe :: (MonadDOM m, HasCallStack) => WebTransportCloseInfo -> m Word
getCloseCodeUnsafe self = liftDOM ((((self ^. js "closeCode") >>= fromJSValUnchecked) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://w3c.github.io/webtransport/#dom-webtransportcloseinfo-closecode WebTransportCloseInfo.closeCode specification>
getCloseCodeUnchecked :: (MonadDOM m) => WebTransportCloseInfo -> m Word
getCloseCodeUnchecked self = liftDOM ((P.round <$> ((self ^. js "closeCode") >>= valToNumber)))

-- | <https://w3c.github.io/webtransport/#dom-webtransportcloseinfo-reason WebTransportCloseInfo.reason specification>
setReason :: (MonadDOM m, ToJSString val) => WebTransportCloseInfo -> val -> m ()
setReason self val = liftDOM (void (self ^. jss "reason" (toJSVal val)))

-- | <https://w3c.github.io/webtransport/#dom-webtransportcloseinfo-reason WebTransportCloseInfo.reason specification>
getReason :: (MonadDOM m, FromJSString result) => WebTransportCloseInfo -> m (Maybe result)
getReason self = liftDOM (((self ^. js "reason") >>= fromMaybeJSString))

-- | <https://w3c.github.io/webtransport/#dom-webtransportcloseinfo-reason WebTransportCloseInfo.reason specification>
getReasonUnsafe :: (MonadDOM m, HasCallStack, FromJSString result) => WebTransportCloseInfo -> m result
getReasonUnsafe self = liftDOM ((((self ^. js "reason") >>= fromMaybeJSString) >>= P.maybe (P.error "Nothing to return") P.return))

-- | <https://w3c.github.io/webtransport/#dom-webtransportcloseinfo-reason WebTransportCloseInfo.reason specification>
getReasonUnchecked :: (MonadDOM m, FromJSString result) => WebTransportCloseInfo -> m result
getReasonUnchecked self = liftDOM (((self ^. js "reason") >>= fromJSValUnchecked))