// Generated from WebIDL - DO NOT EDIT
// Source: @webref/idl/urlpattern
///|
/// URLPatternInput typedef
pub type URLPatternInput
///|
pub extern "js" fn URLPatternInput::to_js_value(
self : URLPatternInput,
) -> JsValue =
#| (self) => self
///|
/// Create URLPatternInput from String
pub extern "js" fn URLPatternInput::from_string(v : String) -> URLPatternInput =
#| (v) => v
///|
/// Create URLPatternInput from URLPatternInit
pub extern "js" fn URLPatternInput::from_url_pattern_init(
v : URLPatternInit,
) -> URLPatternInput =
#| (v) => v
///|
/// Check if this URLPatternInput is String
pub extern "js" fn URLPatternInput::is_string(self : URLPatternInput) -> Bool =
#| (self) => typeof self === 'string'
///|
/// Check if this URLPatternInput is URLPatternInit
pub extern "js" fn URLPatternInput::is_url_pattern_init(
self : URLPatternInput,
) -> Bool =
#| (self) => typeof self === 'object' && self !== null
///|
/// Try to get URLPatternInput as String
pub extern "js" fn URLPatternInput::as_string(
self : URLPatternInput,
) -> String? =
#| (self) => (typeof self === 'string') ? self : undefined
///|
/// Try to get URLPatternInput as URLPatternInit
pub extern "js" fn URLPatternInput::as_url_pattern_init(
self : URLPatternInput,
) -> URLPatternInit? =
#| (self) => (typeof self === 'object' && self !== null) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Flatten Option[URLPatternInput] to String?
pub fn URLPatternInput::bind_as_string(value : URLPatternInput?) -> String? {
match value {
Some(v) => v.as_string()
None => None
}
}
///|
/// Flatten Option[URLPatternInput] to URLPatternInit?
pub fn URLPatternInput::bind_as_url_pattern_init(
value : URLPatternInput?,
) -> URLPatternInit? {
match value {
Some(v) => v.as_url_pattern_init()
None => None
}
}
///|
/// URLPatternCompatible typedef
pub type URLPatternCompatible
///|
pub extern "js" fn URLPatternCompatible::to_js_value(
self : URLPatternCompatible,
) -> JsValue =
#| (self) => self
///|
/// Create URLPatternCompatible from String
pub extern "js" fn URLPatternCompatible::from_string(
v : String,
) -> URLPatternCompatible =
#| (v) => v
///|
/// Create URLPatternCompatible from URLPatternInit
pub extern "js" fn URLPatternCompatible::from_url_pattern_init(
v : URLPatternInit,
) -> URLPatternCompatible =
#| (v) => v
///|
/// Create URLPatternCompatible from URLPattern
pub extern "js" fn URLPatternCompatible::from_url_pattern(
v : URLPattern,
) -> URLPatternCompatible =
#| (v) => v
///|
/// Check if this URLPatternCompatible is String
pub extern "js" fn URLPatternCompatible::is_string(
self : URLPatternCompatible,
) -> Bool =
#| (self) => typeof self === 'string'
///|
/// Check if this URLPatternCompatible is URLPatternInit
pub extern "js" fn URLPatternCompatible::is_url_pattern_init(
self : URLPatternCompatible,
) -> Bool =
#| (self) => typeof self === 'object' && self !== null
///|
/// Check if this URLPatternCompatible is URLPattern
pub extern "js" fn URLPatternCompatible::is_url_pattern(
self : URLPatternCompatible,
) -> Bool =
#| (self) => self instanceof URLPattern
///|
/// Try to get URLPatternCompatible as String
pub extern "js" fn URLPatternCompatible::as_string(
self : URLPatternCompatible,
) -> String? =
#| (self) => (typeof self === 'string') ? self : undefined
///|
/// Try to get URLPatternCompatible as URLPatternInit
pub extern "js" fn URLPatternCompatible::as_url_pattern_init(
self : URLPatternCompatible,
) -> URLPatternInit? =
#| (self) => (typeof self === 'object' && self !== null) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Try to get URLPatternCompatible as URLPattern
pub extern "js" fn URLPatternCompatible::as_url_pattern(
self : URLPatternCompatible,
) -> URLPattern? =
#| (self) => (self instanceof URLPattern) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Flatten Option[URLPatternCompatible] to String?
pub fn URLPatternCompatible::bind_as_string(
value : URLPatternCompatible?,
) -> String? {
match value {
Some(v) => v.as_string()
None => None
}
}
///|
/// Flatten Option[URLPatternCompatible] to URLPatternInit?
pub fn URLPatternCompatible::bind_as_url_pattern_init(
value : URLPatternCompatible?,
) -> URLPatternInit? {
match value {
Some(v) => v.as_url_pattern_init()
None => None
}
}
///|
/// Flatten Option[URLPatternCompatible] to URLPattern?
pub fn URLPatternCompatible::bind_as_url_pattern(
value : URLPatternCompatible?,
) -> URLPattern? {
match value {
Some(v) => v.as_url_pattern()
None => None
}
}
///|
/// URLPatternInit dictionary
pub(all) struct URLPatternInit {
protocol : String?
username : String?
password : String?
hostname : String?
port : String?
pathname : String?
search : String?
hash : String?
baseURL : String?
}
///|
/// Create a new URLPatternInit with default values
pub fn URLPatternInit::default() -> URLPatternInit {
URLPatternInit::{
protocol: None,
username: None,
password: None,
hostname: None,
port: None,
pathname: None,
search: None,
hash: None,
baseURL: None,
}
}
///|
extern "js" fn URLPatternInit::to_js_ffi(self : URLPatternInit) -> JsValue =
#| (self) => ({
#| protocol: self.protocol,
#| username: self.username,
#| password: self.password,
#| hostname: self.hostname,
#| port: self.port,
#| pathname: self.pathname,
#| search: self.search,
#| hash: self.hash,
#| baseURL: self.baseURL
#| })
///|
/// Convert to JsValue
pub fn URLPatternInit::to_js(self : URLPatternInit) -> JsValue {
URLPatternInit::to_js_ffi(self)
}
///|
extern "js" fn URLPatternInit::from_js_ffi(value : JsValue) -> URLPatternInit =
#| (v) => ({
#| protocol: v.protocol,
#| username: v.username,
#| password: v.password,
#| hostname: v.hostname,
#| port: v.port,
#| pathname: v.pathname,
#| search: v.search,
#| hash: v.hash,
#| baseURL: v.baseURL
#| })
///|
/// Convert from JsValue
pub fn URLPatternInit::from_js(value : JsValue) -> URLPatternInit {
URLPatternInit::from_js_ffi(value)
}
///|
/// URLPatternOptions dictionary
pub(all) struct URLPatternOptions {
ignoreCase : Bool?
}
///|
/// Create a new URLPatternOptions with default values
pub fn URLPatternOptions::default() -> URLPatternOptions {
URLPatternOptions::{ ignoreCase: None }
}
///|
extern "js" fn URLPatternOptions::to_js_ffi(
self : URLPatternOptions,
) -> JsValue =
#| (self) => ({
#| ignoreCase: (self.ignoreCase === -1 ? undefined : self.ignoreCase)
#| })
///|
/// Convert to JsValue
pub fn URLPatternOptions::to_js(self : URLPatternOptions) -> JsValue {
URLPatternOptions::to_js_ffi(self)
}
///|
extern "js" fn URLPatternOptions::from_js_ffi(
value : JsValue,
) -> URLPatternOptions =
#| (v) => ({
#| ignoreCase: (v.ignoreCase === undefined ? -1 : v.ignoreCase)
#| })
///|
/// Convert from JsValue
pub fn URLPatternOptions::from_js(value : JsValue) -> URLPatternOptions {
URLPatternOptions::from_js_ffi(value)
}
///|
/// URLPatternResult dictionary
pub(all) struct URLPatternResult {
inputs : Array[URLPatternInput]?
protocol : URLPatternComponentResult?
username : URLPatternComponentResult?
password : URLPatternComponentResult?
hostname : URLPatternComponentResult?
port : URLPatternComponentResult?
pathname : URLPatternComponentResult?
search : URLPatternComponentResult?
hash : URLPatternComponentResult?
}
///|
/// Create a new URLPatternResult with default values
pub fn URLPatternResult::default() -> URLPatternResult {
URLPatternResult::{
inputs: None,
protocol: None,
username: None,
password: None,
hostname: None,
port: None,
pathname: None,
search: None,
hash: None,
}
}
///|
extern "js" fn URLPatternResult::to_js_ffi(self : URLPatternResult) -> JsValue =
#| (self) => ({
#| inputs: ((() => { const v = self.inputs; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| protocol: ((() => { const v = self.protocol; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| username: ((() => { const v = self.username; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| password: ((() => { const v = self.password; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| hostname: ((() => { const v = self.hostname; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| port: ((() => { const v = self.port; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| pathname: ((() => { const v = self.pathname; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| search: ((() => { const v = self.search; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| hash: ((() => { const v = self.hash; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn URLPatternResult::to_js(self : URLPatternResult) -> JsValue {
URLPatternResult::to_js_ffi(self)
}
///|
extern "js" fn URLPatternResult::from_js_ffi(
value : JsValue,
) -> URLPatternResult =
#| (v) => ({
#| inputs: (v.inputs === undefined ? { $tag: 0 } : { $tag: 1, _0: v.inputs }),
#| protocol: (v.protocol === undefined ? { $tag: 0 } : { $tag: 1, _0: v.protocol }),
#| username: (v.username === undefined ? { $tag: 0 } : { $tag: 1, _0: v.username }),
#| password: (v.password === undefined ? { $tag: 0 } : { $tag: 1, _0: v.password }),
#| hostname: (v.hostname === undefined ? { $tag: 0 } : { $tag: 1, _0: v.hostname }),
#| port: (v.port === undefined ? { $tag: 0 } : { $tag: 1, _0: v.port }),
#| pathname: (v.pathname === undefined ? { $tag: 0 } : { $tag: 1, _0: v.pathname }),
#| search: (v.search === undefined ? { $tag: 0 } : { $tag: 1, _0: v.search }),
#| hash: (v.hash === undefined ? { $tag: 0 } : { $tag: 1, _0: v.hash })
#| })
///|
/// Convert from JsValue
pub fn URLPatternResult::from_js(value : JsValue) -> URLPatternResult {
URLPatternResult::from_js_ffi(value)
}
///|
/// URLPatternComponentResult dictionary
pub(all) struct URLPatternComponentResult {
input : String?
groups : JsValue?
}
///|
/// Create a new URLPatternComponentResult with default values
pub fn URLPatternComponentResult::default() -> URLPatternComponentResult {
URLPatternComponentResult::{ input: None, groups: None }
}
///|
extern "js" fn URLPatternComponentResult::to_js_ffi(
self : URLPatternComponentResult,
) -> JsValue =
#| (self) => ({
#| input: self.input,
#| groups: ((() => { const v = self.groups; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn URLPatternComponentResult::to_js(
self : URLPatternComponentResult,
) -> JsValue {
URLPatternComponentResult::to_js_ffi(self)
}
///|
extern "js" fn URLPatternComponentResult::from_js_ffi(
value : JsValue,
) -> URLPatternComponentResult =
#| (v) => ({
#| input: v.input,
#| groups: (v.groups === undefined ? { $tag: 0 } : { $tag: 1, _0: v.groups })
#| })
///|
/// Convert from JsValue
pub fn URLPatternComponentResult::from_js(
value : JsValue,
) -> URLPatternComponentResult {
URLPatternComponentResult::from_js_ffi(value)
}
///|
/// URLPattern interface
pub type URLPattern
///|
pub extern "js" fn URLPattern::to_js_value(self : URLPattern) -> JsValue =
#| (self) => self
///|
/// Cast JsValue to URLPattern (unchecked)
pub extern "js" fn URLPattern::from_js_value(v : JsValue) -> URLPattern =
#| (v) => v
///|
/// Safely cast JsValue to URLPattern (checked with instanceof)
pub extern "js" fn URLPattern::from_js_value_opt(v : JsValue) -> URLPattern? =
#| (v) => (v instanceof URLPattern) ? { $tag: 1, _0: v } : { $tag: 0 }
///|
/// Safely cast JsValue to URLPattern (checked with instanceof)
pub extern "js" fn JsValue::as_url_pattern(self : JsValue) -> URLPattern? =
#| (self) => (self instanceof URLPattern) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Cast JsValue to URLPattern (unchecked)
pub extern "js" fn JsValue::to_url_pattern(self : JsValue) -> URLPattern =
#| (self) => self
///|
/// Error type for throwing methods
pub(all) enum URLPatternConstructorError {
TypeError(JsError)
OtherError(JsError)
} derive(Show)
///|
/// Error type for throwing methods
pub(all) enum URLPatternTestError {
TypeError(JsError)
OtherError(JsError)
} derive(Show)
///|
/// Error type for throwing methods
pub(all) enum URLPatternExecError {
TypeError(JsError)
OtherError(JsError)
} derive(Show)
///|
pub extern "js" fn URLPattern::new() -> Result[
URLPattern,
URLPatternConstructorError,
] =
#| () => (() => { try { return { $tag: 1, _0: new URLPattern() }; } catch(e) { return { $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }; } })()
///|
extern "js" fn URLPattern::new_with_options_ffi(
input : URLPatternInput,
options : JsValue,
) -> Result[URLPattern, URLPatternConstructorError] =
#| (input, options) => (() => { try { return { $tag: 1, _0: new URLPattern(input, options) }; } catch(e) { return { $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }; } })()
///|
pub fn URLPattern::new_with_options(
input : URLPatternInput,
options : URLPatternOptions,
) -> Result[URLPattern, URLPatternConstructorError] {
URLPattern::new_with_options_ffi(input, options.to_js())
}
///|
pub extern "js" fn URLPattern::new_with_input_and_base_url(
input : URLPatternInput,
base_url : String,
) -> Result[URLPattern, URLPatternConstructorError] =
#| (input, base_url) => (() => { try { return { $tag: 1, _0: new URLPattern(input, base_url) }; } catch(e) { return { $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }; } })()
///|
extern "js" fn URLPattern::new_with_input_and_base_url_with_options_ffi(
input : URLPatternInput,
base_url : String,
options : JsValue,
) -> Result[URLPattern, URLPatternConstructorError] =
#| (input, base_url, options) => (() => { try { return { $tag: 1, _0: new URLPattern(input, base_url, options) }; } catch(e) { return { $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }; } })()
///|
pub fn URLPattern::new_with_input_and_base_url_with_options(
input : URLPatternInput,
base_url : String,
options : URLPatternOptions,
) -> Result[URLPattern, URLPatternConstructorError] {
URLPattern::new_with_input_and_base_url_with_options_ffi(
input,
base_url,
options.to_js(),
)
}
///|
pub extern "js" fn URLPattern::test_(
self : URLPattern,
) -> Result[Bool, URLPatternTestError] =
#| (self) => (() => { try { return { $tag: 1, _0: self.test() }; } catch(e) { return { $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }; } })()
///|
pub extern "js" fn URLPattern::test__with_base_url(
self : URLPattern,
input : URLPatternInput,
base_url : String,
) -> Result[Bool, URLPatternTestError] =
#| (self, input, base_url) => (() => { try { return { $tag: 1, _0: self.test(input, base_url) }; } catch(e) { return { $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }; } })()
///|
pub extern "js" fn URLPattern::exec(
self : URLPattern,
) -> Result[URLPatternResult?, URLPatternExecError] =
#| (self) => (() => { try { return { $tag: 1, _0: (() => { const v = self.exec(); return v == null ? { $tag: 0 } : { $tag: 1, _0: v }; })() }; } catch(e) { return { $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }; } })()
///|
pub extern "js" fn URLPattern::exec_with_base_url(
self : URLPattern,
input : URLPatternInput,
base_url : String,
) -> Result[URLPatternResult?, URLPatternExecError] =
#| (self, input, base_url) => (() => { try { return { $tag: 1, _0: (() => { const v = self.exec(input, base_url); return v == null ? { $tag: 0 } : { $tag: 1, _0: v }; })() }; } catch(e) { return { $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }; } })()
///|
pub extern "js" fn URLPattern::get_protocol(self : URLPattern) -> String =
#| (self) => self.protocol
///|
pub extern "js" fn URLPattern::get_username(self : URLPattern) -> String =
#| (self) => self.username
///|
pub extern "js" fn URLPattern::get_password(self : URLPattern) -> String =
#| (self) => self.password
///|
pub extern "js" fn URLPattern::get_hostname(self : URLPattern) -> String =
#| (self) => self.hostname
///|
pub extern "js" fn URLPattern::get_port(self : URLPattern) -> String =
#| (self) => self.port
///|
pub extern "js" fn URLPattern::get_pathname(self : URLPattern) -> String =
#| (self) => self.pathname
///|
pub extern "js" fn URLPattern::get_search(self : URLPattern) -> String =
#| (self) => self.search
///|
pub extern "js" fn URLPattern::get_hash(self : URLPattern) -> String =
#| (self) => self.hash
///|
pub extern "js" fn URLPattern::get_has_reg_exp_groups(
self : URLPattern,
) -> Bool =
#| (self) => self.hasRegExpGroups
///|
pub extern "js" fn URLPattern::new_with_string(
input : String,
base_url : String,
options : URLPatternOptions,
) -> Result[URLPattern, URLPatternConstructorError] =
#| (input, base_url, options) => (() => { try { return { $tag: 1, _0: new URLPattern(input, base_url, options) }; } catch(e) { return { $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }; } })()
///|
pub extern "js" fn URLPattern::new_with_url_pattern_init(
input : URLPatternInit,
base_url : String,
options : URLPatternOptions,
) -> Result[URLPattern, URLPatternConstructorError] =
#| (input, base_url, options) => (() => { try { return { $tag: 1, _0: new URLPattern(input, base_url, options) }; } catch(e) { return { $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }; } })()
///|
pub extern "js" fn URLPattern::test__with_string(
self : URLPattern,
input : String,
base_url : String,
) -> Result[Bool, URLPatternTestError] =
#| (self, input, base_url) => (() => { try { return { $tag: 1, _0: self.test(input, base_url) }; } catch(e) { return { $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }; } })()
///|
pub extern "js" fn URLPattern::test__with_url_pattern_init(
self : URLPattern,
input : URLPatternInit,
base_url : String,
) -> Result[Bool, URLPatternTestError] =
#| (self, input, base_url) => (() => { try { return { $tag: 1, _0: self.test(input, base_url) }; } catch(e) { return { $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }; } })()
///|
pub extern "js" fn URLPattern::exec_with_string(
self : URLPattern,
input : String,
base_url : String,
) -> Result[URLPatternResult?, URLPatternExecError] =
#| (self, input, base_url) => (() => { try { return { $tag: 1, _0: (() => { const v = self.exec(input, base_url); return v == null ? { $tag: 0 } : { $tag: 1, _0: v }; })() }; } catch(e) { return { $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }; } })()
///|
pub extern "js" fn URLPattern::exec_with_url_pattern_init(
self : URLPattern,
input : URLPatternInit,
base_url : String,
) -> Result[URLPatternResult?, URLPatternExecError] =
#| (self, input, base_url) => (() => { try { return { $tag: 1, _0: (() => { const v = self.exec(input, base_url); return v == null ? { $tag: 0 } : { $tag: 1, _0: v }; })() }; } catch(e) { return { $tag: 0, _0: (() => { const n = (e && e.name) || ''; if (n === 'TypeError') return { $tag: 0, _0: e }; return { $tag: 1, _0: e }; })() }; } })()