// Do not edit. This file is generated.
// MoonBit type: PermissionSetParameters
// Specifications: permissions.idl
///|
/// [PermissionSetParameters](https://developer.mozilla.org/en-US/docs/Web/API/PermissionSetParameters)
#external
pub type PermissionSetParameters
///|
pub impl TJsValue for PermissionSetParameters with to_js(
self : PermissionSetParameters,
) -> JsValue = "%identity"
///|
pub impl FromJsAny for PermissionSetParameters with from_js_any(value : JsAny) -> PermissionSetParameters = "%identity"
///|
pub fn PermissionSetParameters::new(
descriptor : JsValue,
state : PermissionState,
) -> PermissionSetParameters {
permission_set_parameters_ffi(
TJsValue::to_js(descriptor),
TJsValue::to_js(state),
)
}
///|
pub fn PermissionSetParameters::empty() -> PermissionSetParameters {
permission_set_parameters_empty_ffi()
}
///|
pub fn PermissionSetParameters::descriptor(
self : PermissionSetParameters,
) -> JsValue {
permission_set_parameters_get_descriptor_ffi(TJsValue::to_js(self))
}
///|
pub fn PermissionSetParameters::state(
self : PermissionSetParameters,
) -> PermissionState {
permission_set_parameters_get_state_ffi(TJsValue::to_js(self))
}
///|
#cfg(target="js")
extern "js" fn permission_set_parameters_ffi(
descriptor : JsValue,
state : JsValue,
) -> PermissionSetParameters =
#|(descriptor, state) => {
#| const obj = {};
#| if (descriptor !== undefined) obj.descriptor = descriptor;
#| if (state !== undefined) obj.state = state;
#| return obj;
#|}
///|
#cfg(target="js")
extern "js" fn permission_set_parameters_empty_ffi() -> PermissionSetParameters = "() => {}"
///|
#cfg(target="js")
extern "js" fn permission_set_parameters_get_descriptor_ffi_js(
obj : JsValue,
) -> JsValue = "(obj) => obj.descriptor"
///|
#cfg(target="js")
fn permission_set_parameters_get_descriptor_ffi(obj : JsValue) -> JsValue {
permission_set_parameters_get_descriptor_ffi_js(obj).unsafe_cast()
}
///|
#cfg(target="js")
extern "js" fn permission_set_parameters_get_state_ffi_js(
obj : JsValue,
) -> JsValue = "(obj) => obj.state"
///|
#cfg(target="js")
fn permission_set_parameters_get_state_ffi(obj : JsValue) -> PermissionState {
PermissionState::from_unchecked(
permission_set_parameters_get_state_ffi_js(obj).unsafe_cast(),
)
}
///|
#cfg(target="wasm-gc")
fn permission_set_parameters_ffi(
descriptor : JsValue,
state : JsValue,
) -> PermissionSetParameters = "webapi_PermissionSetParameters" "new"
///|
#cfg(target="wasm-gc")
fn permission_set_parameters_empty_ffi() -> PermissionSetParameters = "webapi_Dictionary" "empty"
///|
#cfg(target="wasm-gc")
fn permission_set_parameters_get_descriptor_ffi(obj : JsValue) -> JsValue = "webapi_PermissionSetParameters" "get_descriptor"
///|
#cfg(target="wasm-gc")
fn permission_set_parameters_get_state_ffi_wasm(obj : JsValue) -> JsValue = "webapi_PermissionSetParameters" "get_state"
///|
#cfg(target="wasm-gc")
fn permission_set_parameters_get_state_ffi(obj : JsValue) -> PermissionState {
PermissionState::from_unchecked(
jsvalue_to_string(permission_set_parameters_get_state_ffi_wasm(obj)),
)
}