// Generated from WebIDL - DO NOT EDIT
// Source: @webref/idl/media-capabilities
///|
/// MediaDecodingType enum
pub(all) enum MediaDecodingType {
File
MediaSource
Webrtc
} derive(Eq, Show)
///|
/// Convert to string value
pub fn MediaDecodingType::to_string(self : MediaDecodingType) -> String {
match self {
MediaDecodingType::File => "file"
MediaDecodingType::MediaSource => "media-source"
MediaDecodingType::Webrtc => "webrtc"
}
}
///|
/// Parse from string value
pub fn MediaDecodingType::from_string(s : String) -> MediaDecodingType? {
match s {
"file" => Some(MediaDecodingType::File)
"media-source" => Some(MediaDecodingType::MediaSource)
"webrtc" => Some(MediaDecodingType::Webrtc)
_ => None
}
}
///|
/// MediaEncodingType enum
pub(all) enum MediaEncodingType {
Record
Webrtc
} derive(Eq, Show)
///|
/// Convert to string value
pub fn MediaEncodingType::to_string(self : MediaEncodingType) -> String {
match self {
MediaEncodingType::Record => "record"
MediaEncodingType::Webrtc => "webrtc"
}
}
///|
/// Parse from string value
pub fn MediaEncodingType::from_string(s : String) -> MediaEncodingType? {
match s {
"record" => Some(MediaEncodingType::Record)
"webrtc" => Some(MediaEncodingType::Webrtc)
_ => None
}
}
///|
/// HdrMetadataType enum
pub(all) enum HdrMetadataType {
SmpteSt2086
SmpteSt209410
SmpteSt209440
} derive(Eq, Show)
///|
/// Convert to string value
pub fn HdrMetadataType::to_string(self : HdrMetadataType) -> String {
match self {
HdrMetadataType::SmpteSt2086 => "smpteSt2086"
HdrMetadataType::SmpteSt209410 => "smpteSt2094-10"
HdrMetadataType::SmpteSt209440 => "smpteSt2094-40"
}
}
///|
/// Parse from string value
pub fn HdrMetadataType::from_string(s : String) -> HdrMetadataType? {
match s {
"smpteSt2086" => Some(HdrMetadataType::SmpteSt2086)
"smpteSt2094-10" => Some(HdrMetadataType::SmpteSt209410)
"smpteSt2094-40" => Some(HdrMetadataType::SmpteSt209440)
_ => None
}
}
///|
/// ColorGamut enum
pub(all) enum ColorGamut {
Srgb
P3
Rec2020
} derive(Eq, Show)
///|
/// Convert to string value
pub fn ColorGamut::to_string(self : ColorGamut) -> String {
match self {
ColorGamut::Srgb => "srgb"
ColorGamut::P3 => "p3"
ColorGamut::Rec2020 => "rec2020"
}
}
///|
/// Parse from string value
pub fn ColorGamut::from_string(s : String) -> ColorGamut? {
match s {
"srgb" => Some(ColorGamut::Srgb)
"p3" => Some(ColorGamut::P3)
"rec2020" => Some(ColorGamut::Rec2020)
_ => None
}
}
///|
/// TransferFunction enum
pub(all) enum TransferFunction {
Srgb
Pq
Hlg
} derive(Eq, Show)
///|
/// Convert to string value
pub fn TransferFunction::to_string(self : TransferFunction) -> String {
match self {
TransferFunction::Srgb => "srgb"
TransferFunction::Pq => "pq"
TransferFunction::Hlg => "hlg"
}
}
///|
/// Parse from string value
pub fn TransferFunction::from_string(s : String) -> TransferFunction? {
match s {
"srgb" => Some(TransferFunction::Srgb)
"pq" => Some(TransferFunction::Pq)
"hlg" => Some(TransferFunction::Hlg)
_ => None
}
}
///|
/// MediaConfiguration dictionary
pub(all) struct MediaConfiguration {
video : VideoConfiguration?
audio : AudioConfiguration?
}
///|
/// Create a new MediaConfiguration with default values
pub fn MediaConfiguration::default() -> MediaConfiguration {
MediaConfiguration::{ video: None, audio: None }
}
///|
extern "js" fn MediaConfiguration::to_js_ffi(
self : MediaConfiguration,
) -> JsValue =
#| (self) => ({
#| video: ((() => { const v = self.video; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| audio: ((() => { const v = self.audio; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn MediaConfiguration::to_js(self : MediaConfiguration) -> JsValue {
MediaConfiguration::to_js_ffi(self)
}
///|
extern "js" fn MediaConfiguration::from_js_ffi(
value : JsValue,
) -> MediaConfiguration =
#| (v) => ({
#| video: (v.video === undefined ? { $tag: 0 } : { $tag: 1, _0: v.video }),
#| audio: (v.audio === undefined ? { $tag: 0 } : { $tag: 1, _0: v.audio })
#| })
///|
/// Convert from JsValue
pub fn MediaConfiguration::from_js(value : JsValue) -> MediaConfiguration {
MediaConfiguration::from_js_ffi(value)
}
///|
/// MediaDecodingConfiguration dictionary
pub(all) struct MediaDecodingConfiguration {
video : VideoConfiguration?
audio : AudioConfiguration?
type_ : MediaDecodingType
keySystemConfiguration : MediaCapabilitiesKeySystemConfiguration?
}
///|
/// Create a new MediaDecodingConfiguration
pub fn MediaDecodingConfiguration::new(
type_~ : MediaDecodingType,
) -> MediaDecodingConfiguration {
MediaDecodingConfiguration::{
video: None,
audio: None,
type_,
keySystemConfiguration: None,
}
}
///|
extern "js" fn MediaDecodingConfiguration::to_js_ffi(
self : MediaDecodingConfiguration,
) -> JsValue =
#| (self) => ({
#| video: ((() => { const v = self.video; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| audio: ((() => { const v = self.audio; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| type: ['file', 'media-source', 'webrtc'][self.type_],
#| keySystemConfiguration: ((() => { const v = self.keySystemConfiguration; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn MediaDecodingConfiguration::to_js(
self : MediaDecodingConfiguration,
) -> JsValue {
MediaDecodingConfiguration::to_js_ffi(self)
}
///|
extern "js" fn MediaDecodingConfiguration::from_js_ffi(
value : JsValue,
) -> MediaDecodingConfiguration =
#| (v) => ({
#| video: (v.video === undefined ? { $tag: 0 } : { $tag: 1, _0: v.video }),
#| audio: (v.audio === undefined ? { $tag: 0 } : { $tag: 1, _0: v.audio }),
#| type_: ['file', 'media-source', 'webrtc'].indexOf(v.type),
#| keySystemConfiguration: (v.keySystemConfiguration === undefined ? { $tag: 0 } : { $tag: 1, _0: v.keySystemConfiguration })
#| })
///|
/// Convert from JsValue
pub fn MediaDecodingConfiguration::from_js(
value : JsValue,
) -> MediaDecodingConfiguration {
MediaDecodingConfiguration::from_js_ffi(value)
}
///|
/// MediaEncodingConfiguration dictionary
pub(all) struct MediaEncodingConfiguration {
video : VideoConfiguration?
audio : AudioConfiguration?
type_ : MediaEncodingType
}
///|
/// Create a new MediaEncodingConfiguration
pub fn MediaEncodingConfiguration::new(
type_~ : MediaEncodingType,
) -> MediaEncodingConfiguration {
MediaEncodingConfiguration::{ video: None, audio: None, type_ }
}
///|
extern "js" fn MediaEncodingConfiguration::to_js_ffi(
self : MediaEncodingConfiguration,
) -> JsValue =
#| (self) => ({
#| video: ((() => { const v = self.video; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| audio: ((() => { const v = self.audio; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| type: ['record', 'webrtc'][self.type_]
#| })
///|
/// Convert to JsValue
pub fn MediaEncodingConfiguration::to_js(
self : MediaEncodingConfiguration,
) -> JsValue {
MediaEncodingConfiguration::to_js_ffi(self)
}
///|
extern "js" fn MediaEncodingConfiguration::from_js_ffi(
value : JsValue,
) -> MediaEncodingConfiguration =
#| (v) => ({
#| video: (v.video === undefined ? { $tag: 0 } : { $tag: 1, _0: v.video }),
#| audio: (v.audio === undefined ? { $tag: 0 } : { $tag: 1, _0: v.audio }),
#| type_: ['record', 'webrtc'].indexOf(v.type)
#| })
///|
/// Convert from JsValue
pub fn MediaEncodingConfiguration::from_js(
value : JsValue,
) -> MediaEncodingConfiguration {
MediaEncodingConfiguration::from_js_ffi(value)
}
///|
/// VideoConfiguration dictionary
pub(all) struct VideoConfiguration {
contentType : String
width : Int
height : Int
bitrate : Int64
framerate : Double
hasAlphaChannel : Bool?
hdrMetadataType : HdrMetadataType?
colorGamut : ColorGamut?
transferFunction : TransferFunction?
scalabilityMode : String?
spatialScalability : Bool?
}
///|
/// Create a new VideoConfiguration with default values
pub fn VideoConfiguration::default() -> VideoConfiguration {
VideoConfiguration::{
contentType: "",
width: 0,
height: 0,
bitrate: 0,
framerate: 0,
hasAlphaChannel: None,
hdrMetadataType: None,
colorGamut: None,
transferFunction: None,
scalabilityMode: None,
spatialScalability: None,
}
}
///|
extern "js" fn VideoConfiguration::to_js_ffi(
self : VideoConfiguration,
) -> JsValue =
#| (self) => ({
#| contentType: self.contentType,
#| width: self.width,
#| height: self.height,
#| bitrate: self.bitrate,
#| framerate: self.framerate,
#| hasAlphaChannel: (self.hasAlphaChannel === -1 ? undefined : self.hasAlphaChannel),
#| hdrMetadataType: ((() => { const v = self.hdrMetadataType; if (v === undefined) return undefined; return ['smpteSt2086', 'smpteSt2094-10', 'smpteSt2094-40'][v]; })()),
#| colorGamut: ((() => { const v = self.colorGamut; if (v === undefined) return undefined; return ['srgb', 'p3', 'rec2020'][v]; })()),
#| transferFunction: ((() => { const v = self.transferFunction; if (v === undefined) return undefined; return ['srgb', 'pq', 'hlg'][v]; })()),
#| scalabilityMode: self.scalabilityMode,
#| spatialScalability: (self.spatialScalability === -1 ? undefined : self.spatialScalability)
#| })
///|
/// Convert to JsValue
pub fn VideoConfiguration::to_js(self : VideoConfiguration) -> JsValue {
VideoConfiguration::to_js_ffi(self)
}
///|
extern "js" fn VideoConfiguration::from_js_ffi(
value : JsValue,
) -> VideoConfiguration =
#| (v) => ({
#| contentType: v.contentType,
#| width: v.width,
#| height: v.height,
#| bitrate: v.bitrate,
#| framerate: v.framerate,
#| hasAlphaChannel: (v.hasAlphaChannel === undefined ? -1 : v.hasAlphaChannel),
#| hdrMetadataType: (v.hdrMetadataType === undefined ? undefined : ['smpteSt2086', 'smpteSt2094-10', 'smpteSt2094-40'].indexOf(v.hdrMetadataType)),
#| colorGamut: (v.colorGamut === undefined ? undefined : ['srgb', 'p3', 'rec2020'].indexOf(v.colorGamut)),
#| transferFunction: (v.transferFunction === undefined ? undefined : ['srgb', 'pq', 'hlg'].indexOf(v.transferFunction)),
#| scalabilityMode: v.scalabilityMode,
#| spatialScalability: (v.spatialScalability === undefined ? -1 : v.spatialScalability)
#| })
///|
/// Convert from JsValue
pub fn VideoConfiguration::from_js(value : JsValue) -> VideoConfiguration {
VideoConfiguration::from_js_ffi(value)
}
///|
/// AudioConfiguration dictionary
pub(all) struct AudioConfiguration {
contentType : String
channels : String?
bitrate : Int64?
samplerate : Int?
spatialRendering : Bool?
}
///|
/// Create a new AudioConfiguration with default values
pub fn AudioConfiguration::default() -> AudioConfiguration {
AudioConfiguration::{
contentType: "",
channels: None,
bitrate: None,
samplerate: None,
spatialRendering: None,
}
}
///|
extern "js" fn AudioConfiguration::to_js_ffi(
self : AudioConfiguration,
) -> JsValue =
#| (self) => ({
#| contentType: self.contentType,
#| channels: self.channels,
#| bitrate: self.bitrate,
#| samplerate: self.samplerate,
#| spatialRendering: (self.spatialRendering === -1 ? undefined : self.spatialRendering)
#| })
///|
/// Convert to JsValue
pub fn AudioConfiguration::to_js(self : AudioConfiguration) -> JsValue {
AudioConfiguration::to_js_ffi(self)
}
///|
extern "js" fn AudioConfiguration::from_js_ffi(
value : JsValue,
) -> AudioConfiguration =
#| (v) => ({
#| contentType: v.contentType,
#| channels: v.channels,
#| bitrate: v.bitrate,
#| samplerate: v.samplerate,
#| spatialRendering: (v.spatialRendering === undefined ? -1 : v.spatialRendering)
#| })
///|
/// Convert from JsValue
pub fn AudioConfiguration::from_js(value : JsValue) -> AudioConfiguration {
AudioConfiguration::from_js_ffi(value)
}
///|
/// MediaCapabilitiesKeySystemConfiguration dictionary
pub(all) struct MediaCapabilitiesKeySystemConfiguration {
keySystem : String
initDataType : String?
distinctiveIdentifier : MediaKeysRequirement?
persistentState : MediaKeysRequirement?
sessionTypes : Array[String]?
audio : KeySystemTrackConfiguration?
video : KeySystemTrackConfiguration?
}
///|
/// Create a new MediaCapabilitiesKeySystemConfiguration with default values
pub fn MediaCapabilitiesKeySystemConfiguration::default() -> MediaCapabilitiesKeySystemConfiguration {
MediaCapabilitiesKeySystemConfiguration::{
keySystem: "",
initDataType: None,
distinctiveIdentifier: None,
persistentState: None,
sessionTypes: None,
audio: None,
video: None,
}
}
///|
extern "js" fn MediaCapabilitiesKeySystemConfiguration::to_js_ffi(
self : MediaCapabilitiesKeySystemConfiguration,
) -> JsValue =
#| (self) => ({
#| keySystem: self.keySystem,
#| initDataType: self.initDataType,
#| distinctiveIdentifier: ((() => { const v = self.distinctiveIdentifier; if (v === undefined) return undefined; return ['required', 'optional', 'not-allowed'][v]; })()),
#| persistentState: ((() => { const v = self.persistentState; if (v === undefined) return undefined; return ['required', 'optional', 'not-allowed'][v]; })()),
#| sessionTypes: ((() => { const v = self.sessionTypes; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| audio: ((() => { const v = self.audio; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| video: ((() => { const v = self.video; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn MediaCapabilitiesKeySystemConfiguration::to_js(
self : MediaCapabilitiesKeySystemConfiguration,
) -> JsValue {
MediaCapabilitiesKeySystemConfiguration::to_js_ffi(self)
}
///|
extern "js" fn MediaCapabilitiesKeySystemConfiguration::from_js_ffi(
value : JsValue,
) -> MediaCapabilitiesKeySystemConfiguration =
#| (v) => ({
#| keySystem: v.keySystem,
#| initDataType: v.initDataType,
#| distinctiveIdentifier: (v.distinctiveIdentifier === undefined ? undefined : ['required', 'optional', 'not-allowed'].indexOf(v.distinctiveIdentifier)),
#| persistentState: (v.persistentState === undefined ? undefined : ['required', 'optional', 'not-allowed'].indexOf(v.persistentState)),
#| sessionTypes: (v.sessionTypes === undefined ? { $tag: 0 } : { $tag: 1, _0: v.sessionTypes }),
#| audio: (v.audio === undefined ? { $tag: 0 } : { $tag: 1, _0: v.audio }),
#| video: (v.video === undefined ? { $tag: 0 } : { $tag: 1, _0: v.video })
#| })
///|
/// Convert from JsValue
pub fn MediaCapabilitiesKeySystemConfiguration::from_js(
value : JsValue,
) -> MediaCapabilitiesKeySystemConfiguration {
MediaCapabilitiesKeySystemConfiguration::from_js_ffi(value)
}
///|
/// KeySystemTrackConfiguration dictionary
pub(all) struct KeySystemTrackConfiguration {
robustness : String?
encryptionScheme : Nullable[String]
}
///|
/// Create a new KeySystemTrackConfiguration with default values
pub fn KeySystemTrackConfiguration::default() -> KeySystemTrackConfiguration {
KeySystemTrackConfiguration::{
robustness: None,
encryptionScheme: Nullable::Undefined,
}
}
///|
extern "js" fn KeySystemTrackConfiguration::to_js_ffi(
self : KeySystemTrackConfiguration,
) -> JsValue =
#| (self) => ({
#| robustness: self.robustness,
#| encryptionScheme: ((() => { const v = self.encryptionScheme; if (v.$tag === 0) return undefined; if (v.$tag === 1) return null; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn KeySystemTrackConfiguration::to_js(
self : KeySystemTrackConfiguration,
) -> JsValue {
KeySystemTrackConfiguration::to_js_ffi(self)
}
///|
extern "js" fn KeySystemTrackConfiguration::from_js_ffi(
value : JsValue,
) -> KeySystemTrackConfiguration =
#| (v) => ({
#| robustness: v.robustness,
#| encryptionScheme: (v.encryptionScheme === undefined ? { $tag: 0 } : v.encryptionScheme === null ? { $tag: 1 } : { $tag: 2, _0: v.encryptionScheme })
#| })
///|
/// Convert from JsValue
pub fn KeySystemTrackConfiguration::from_js(
value : JsValue,
) -> KeySystemTrackConfiguration {
KeySystemTrackConfiguration::from_js_ffi(value)
}
///|
/// MediaCapabilitiesInfo dictionary
pub(all) struct MediaCapabilitiesInfo {
supported : Bool
smooth : Bool
powerEfficient : Bool
}
///|
/// Create a new MediaCapabilitiesInfo with default values
pub fn MediaCapabilitiesInfo::default() -> MediaCapabilitiesInfo {
MediaCapabilitiesInfo::{
supported: false,
smooth: false,
powerEfficient: false,
}
}
///|
extern "js" fn MediaCapabilitiesInfo::to_js_ffi(
self : MediaCapabilitiesInfo,
) -> JsValue =
#| (self) => ({
#| supported: self.supported,
#| smooth: self.smooth,
#| powerEfficient: self.powerEfficient
#| })
///|
/// Convert to JsValue
pub fn MediaCapabilitiesInfo::to_js(self : MediaCapabilitiesInfo) -> JsValue {
MediaCapabilitiesInfo::to_js_ffi(self)
}
///|
extern "js" fn MediaCapabilitiesInfo::from_js_ffi(
value : JsValue,
) -> MediaCapabilitiesInfo =
#| (v) => ({
#| supported: v.supported,
#| smooth: v.smooth,
#| powerEfficient: v.powerEfficient
#| })
///|
/// Convert from JsValue
pub fn MediaCapabilitiesInfo::from_js(value : JsValue) -> MediaCapabilitiesInfo {
MediaCapabilitiesInfo::from_js_ffi(value)
}
///|
/// MediaCapabilitiesDecodingInfo dictionary
pub(all) struct MediaCapabilitiesDecodingInfo {
supported : Bool
smooth : Bool
powerEfficient : Bool
keySystemAccess : MediaKeySystemAccess?
configuration : MediaDecodingConfiguration
}
///|
/// Create a new MediaCapabilitiesDecodingInfo
pub fn MediaCapabilitiesDecodingInfo::new(
configuration~ : MediaDecodingConfiguration,
) -> MediaCapabilitiesDecodingInfo {
MediaCapabilitiesDecodingInfo::{
supported: false,
smooth: false,
powerEfficient: false,
keySystemAccess: None,
configuration,
}
}
///|
extern "js" fn MediaCapabilitiesDecodingInfo::to_js_ffi(
self : MediaCapabilitiesDecodingInfo,
) -> JsValue =
#| (self) => ({
#| supported: self.supported,
#| smooth: self.smooth,
#| powerEfficient: self.powerEfficient,
#| keySystemAccess: self.keySystemAccess,
#| configuration: self.configuration
#| })
///|
/// Convert to JsValue
pub fn MediaCapabilitiesDecodingInfo::to_js(
self : MediaCapabilitiesDecodingInfo,
) -> JsValue {
MediaCapabilitiesDecodingInfo::to_js_ffi(self)
}
///|
extern "js" fn MediaCapabilitiesDecodingInfo::from_js_ffi(
value : JsValue,
) -> MediaCapabilitiesDecodingInfo =
#| (v) => ({
#| supported: v.supported,
#| smooth: v.smooth,
#| powerEfficient: v.powerEfficient,
#| keySystemAccess: v.keySystemAccess,
#| configuration: v.configuration
#| })
///|
/// Convert from JsValue
pub fn MediaCapabilitiesDecodingInfo::from_js(
value : JsValue,
) -> MediaCapabilitiesDecodingInfo {
MediaCapabilitiesDecodingInfo::from_js_ffi(value)
}
///|
/// MediaCapabilitiesEncodingInfo dictionary
pub(all) struct MediaCapabilitiesEncodingInfo {
supported : Bool
smooth : Bool
powerEfficient : Bool
configuration : MediaEncodingConfiguration
}
///|
/// Create a new MediaCapabilitiesEncodingInfo
pub fn MediaCapabilitiesEncodingInfo::new(
configuration~ : MediaEncodingConfiguration,
) -> MediaCapabilitiesEncodingInfo {
MediaCapabilitiesEncodingInfo::{
supported: false,
smooth: false,
powerEfficient: false,
configuration,
}
}
///|
extern "js" fn MediaCapabilitiesEncodingInfo::to_js_ffi(
self : MediaCapabilitiesEncodingInfo,
) -> JsValue =
#| (self) => ({
#| supported: self.supported,
#| smooth: self.smooth,
#| powerEfficient: self.powerEfficient,
#| configuration: self.configuration
#| })
///|
/// Convert to JsValue
pub fn MediaCapabilitiesEncodingInfo::to_js(
self : MediaCapabilitiesEncodingInfo,
) -> JsValue {
MediaCapabilitiesEncodingInfo::to_js_ffi(self)
}
///|
extern "js" fn MediaCapabilitiesEncodingInfo::from_js_ffi(
value : JsValue,
) -> MediaCapabilitiesEncodingInfo =
#| (v) => ({
#| supported: v.supported,
#| smooth: v.smooth,
#| powerEfficient: v.powerEfficient,
#| configuration: v.configuration
#| })
///|
/// Convert from JsValue
pub fn MediaCapabilitiesEncodingInfo::from_js(
value : JsValue,
) -> MediaCapabilitiesEncodingInfo {
MediaCapabilitiesEncodingInfo::from_js_ffi(value)
}
///|
/// MediaCapabilities interface
pub type MediaCapabilities
///|
pub extern "js" fn MediaCapabilities::to_js_value(
self : MediaCapabilities,
) -> JsValue =
#| (self) => self
///|
/// Cast JsValue to MediaCapabilities (unchecked)
pub extern "js" fn MediaCapabilities::from_js_value(
v : JsValue,
) -> MediaCapabilities =
#| (v) => v
///|
/// Safely cast JsValue to MediaCapabilities (checked with instanceof)
pub extern "js" fn MediaCapabilities::from_js_value_opt(
v : JsValue,
) -> MediaCapabilities? =
#| (v) => (v instanceof MediaCapabilities) ? { $tag: 1, _0: v } : { $tag: 0 }
///|
/// Safely cast JsValue to MediaCapabilities (checked with instanceof)
pub extern "js" fn JsValue::as_media_capabilities(
self : JsValue,
) -> MediaCapabilities? =
#| (self) => (self instanceof MediaCapabilities) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Cast JsValue to MediaCapabilities (unchecked)
pub extern "js" fn JsValue::to_media_capabilities(
self : JsValue,
) -> MediaCapabilities =
#| (self) => self
///|
/// Error type for throwing methods
pub(all) enum MediaCapabilitiesDecodingInfoError {
TypeError(JsError)
SecurityError(JsError)
InvalidStateError(JsError)
OtherError(JsError)
} derive(Show)
///|
/// Error type for throwing methods
pub(all) enum MediaCapabilitiesEncodingInfoError {
TypeError(JsError)
OtherError(JsError)
} derive(Show)
///|
extern "js" fn MediaCapabilities::decoding_info_ffi(
self : MediaCapabilities,
configuration : JsValue,
) -> Promise[
Result[MediaCapabilitiesDecodingInfo, MediaCapabilitiesDecodingInfoError],
] =
#| (self, configuration) => self.decodingInfo(configuration).then(v => ({
#| keySystemAccess: v.keySystemAccess,
#| configuration: v.configuration
#| })).then(r => ({ $tag: 1, _0: r })).catch(e => ({ $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; if (n === 'SecurityError') return { $tag: 1, _0: e }; if (n === 'InvalidStateError') return { $tag: 2, _0: e }; return { $tag: 3, _0: e }; })() }))
///|
pub fn MediaCapabilities::decoding_info(
self : MediaCapabilities,
configuration : MediaDecodingConfiguration,
) -> Promise[
Result[MediaCapabilitiesDecodingInfo, MediaCapabilitiesDecodingInfoError],
] {
MediaCapabilities::decoding_info_ffi(self, configuration.to_js())
}
///|
extern "js" fn MediaCapabilities::encoding_info_ffi(
self : MediaCapabilities,
configuration : JsValue,
) -> Promise[
Result[MediaCapabilitiesEncodingInfo, MediaCapabilitiesEncodingInfoError],
] =
#| (self, configuration) => self.encodingInfo(configuration).then(v => ({
#| configuration: v.configuration
#| })).then(r => ({ $tag: 1, _0: r })).catch(e => ({ $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }))
///|
pub fn MediaCapabilities::encoding_info(
self : MediaCapabilities,
configuration : MediaEncodingConfiguration,
) -> Promise[
Result[MediaCapabilitiesEncodingInfo, MediaCapabilitiesEncodingInfoError],
] {
MediaCapabilities::encoding_info_ffi(self, configuration.to_js())
}