{-# LANGUAGE PatternSynonyms #-}
-- For HasCallStack compatibility
{-# LANGUAGE ImplicitParams, ConstraintKinds, KindSignatures #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module JSDOM.Generated.RTCIceTransport
       (getState, getGatheringState, RTCIceTransport(..),
        gTypeRTCIceTransport)
       where
import Prelude ((.), (==), (>>=), return, IO, Int, Float, Double, Bool(..), Maybe, maybe, fromIntegral, round, realToFrac, fmap, Show, Read, Eq, Ord, Maybe(..))
import qualified Prelude (error)
import Data.Typeable (Typeable)
import Data.Traversable (mapM)
import Language.Javascript.JSaddle (JSM(..), JSVal(..), JSString, strictEqual, toJSVal, valToStr, valToNumber, valToBool, js, jss, jsf, jsg, function, asyncFunction, new, array, jsUndefined, (!), (!!))
import Data.Int (Int64)
import Data.Word (Word, Word64)
import JSDOM.Types
import Control.Applicative ((<$>))
import Control.Monad (void)
import Control.Lens.Operators ((^.))
import JSDOM.EventTargetClosures (EventName, unsafeEventName, unsafeEventNameAsync)
import JSDOM.Enums

-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceTransport.state Mozilla RTCIceTransport.state documentation> 
getState ::
         (MonadDOM m) => RTCIceTransport -> m RTCIceTransportState
getState :: RTCIceTransport -> m RTCIceTransportState
getState RTCIceTransport
self
  = DOM RTCIceTransportState -> m RTCIceTransportState
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((RTCIceTransport
self RTCIceTransport
-> Getting (JSM JSVal) RTCIceTransport (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter RTCIceTransport (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"state") JSM JSVal
-> (JSVal -> DOM RTCIceTransportState) -> DOM RTCIceTransportState
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM RTCIceTransportState
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)

-- | <https://developer.mozilla.org/en-US/docs/Web/API/RTCIceTransport.gatheringState Mozilla RTCIceTransport.gatheringState documentation> 
getGatheringState ::
                  (MonadDOM m) => RTCIceTransport -> m RTCIceGatheringState
getGatheringState :: RTCIceTransport -> m RTCIceGatheringState
getGatheringState RTCIceTransport
self
  = DOM RTCIceGatheringState -> m RTCIceGatheringState
forall (m :: * -> *) a. MonadDOM m => DOM a -> m a
liftDOM ((RTCIceTransport
self RTCIceTransport
-> Getting (JSM JSVal) RTCIceTransport (JSM JSVal) -> JSM JSVal
forall s a. s -> Getting a s a -> a
^. [Char] -> IndexPreservingGetter RTCIceTransport (JSM JSVal)
forall s name.
(MakeObject s, ToJSString name) =>
name -> IndexPreservingGetter s (JSM JSVal)
js [Char]
"gatheringState") JSM JSVal
-> (JSVal -> DOM RTCIceGatheringState) -> DOM RTCIceGatheringState
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= JSVal -> DOM RTCIceGatheringState
forall a. FromJSVal a => JSVal -> JSM a
fromJSValUnchecked)