// Generated from WebIDL - DO NOT EDIT
// Source: @webref/idl/observable
///|
/// ObserverUnion typedef
pub type ObserverUnion
///|
pub extern "js" fn ObserverUnion::to_js_value(self : ObserverUnion) -> JsValue =
#| (self) => self
///|
/// Create ObserverUnion from ObservableSubscriptionCallback
pub extern "js" fn ObserverUnion::from_observable_subscription_callback(
v : ObservableSubscriptionCallback,
) -> ObserverUnion =
#| (v) => v
///|
/// Create ObserverUnion from SubscriptionObserver
pub extern "js" fn ObserverUnion::from_subscription_observer(
v : SubscriptionObserver,
) -> ObserverUnion =
#| (v) => v
///|
/// Check if this ObserverUnion is ObservableSubscriptionCallback
pub extern "js" fn ObserverUnion::is_observable_subscription_callback(
self : ObserverUnion,
) -> Bool =
#| (self) => typeof self === 'function'
///|
/// Check if this ObserverUnion is SubscriptionObserver
pub extern "js" fn ObserverUnion::is_subscription_observer(
self : ObserverUnion,
) -> Bool =
#| (self) => typeof self === 'object' && self !== null
///|
/// Try to get ObserverUnion as ObservableSubscriptionCallback
pub extern "js" fn ObserverUnion::as_observable_subscription_callback(
self : ObserverUnion,
) -> ObservableSubscriptionCallback? =
#| (self) => (typeof self === 'function') ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Try to get ObserverUnion as SubscriptionObserver
pub extern "js" fn ObserverUnion::as_subscription_observer(
self : ObserverUnion,
) -> SubscriptionObserver? =
#| (self) => (typeof self === 'object' && self !== null) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Flatten Option[ObserverUnion] to ObservableSubscriptionCallback?
pub fn ObserverUnion::bind_as_observable_subscription_callback(
value : ObserverUnion?,
) -> ObservableSubscriptionCallback? {
match value {
Some(v) => v.as_observable_subscription_callback()
None => None
}
}
///|
/// Flatten Option[ObserverUnion] to SubscriptionObserver?
pub fn ObserverUnion::bind_as_subscription_observer(
value : ObserverUnion?,
) -> SubscriptionObserver? {
match value {
Some(v) => v.as_subscription_observer()
None => None
}
}
///|
/// ObservableInspectorUnion typedef
pub type ObservableInspectorUnion
///|
pub extern "js" fn ObservableInspectorUnion::to_js_value(
self : ObservableInspectorUnion,
) -> JsValue =
#| (self) => self
///|
/// Create ObservableInspectorUnion from ObservableSubscriptionCallback
pub extern "js" fn ObservableInspectorUnion::from_observable_subscription_callback(
v : ObservableSubscriptionCallback,
) -> ObservableInspectorUnion =
#| (v) => v
///|
/// Create ObservableInspectorUnion from ObservableInspector
pub extern "js" fn ObservableInspectorUnion::from_observable_inspector(
v : ObservableInspector,
) -> ObservableInspectorUnion =
#| (v) => v
///|
/// Check if this ObservableInspectorUnion is ObservableSubscriptionCallback
pub extern "js" fn ObservableInspectorUnion::is_observable_subscription_callback(
self : ObservableInspectorUnion,
) -> Bool =
#| (self) => typeof self === 'function'
///|
/// Check if this ObservableInspectorUnion is ObservableInspector
pub extern "js" fn ObservableInspectorUnion::is_observable_inspector(
self : ObservableInspectorUnion,
) -> Bool =
#| (self) => typeof self === 'object' && self !== null
///|
/// Try to get ObservableInspectorUnion as ObservableSubscriptionCallback
pub extern "js" fn ObservableInspectorUnion::as_observable_subscription_callback(
self : ObservableInspectorUnion,
) -> ObservableSubscriptionCallback? =
#| (self) => (typeof self === 'function') ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Try to get ObservableInspectorUnion as ObservableInspector
pub extern "js" fn ObservableInspectorUnion::as_observable_inspector(
self : ObservableInspectorUnion,
) -> ObservableInspector? =
#| (self) => (typeof self === 'object' && self !== null) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Flatten Option[ObservableInspectorUnion] to ObservableSubscriptionCallback?
pub fn ObservableInspectorUnion::bind_as_observable_subscription_callback(
value : ObservableInspectorUnion?,
) -> ObservableSubscriptionCallback? {
match value {
Some(v) => v.as_observable_subscription_callback()
None => None
}
}
///|
/// Flatten Option[ObservableInspectorUnion] to ObservableInspector?
pub fn ObservableInspectorUnion::bind_as_observable_inspector(
value : ObservableInspectorUnion?,
) -> ObservableInspector? {
match value {
Some(v) => v.as_observable_inspector()
None => None
}
}
///|
/// SubscribeCallback callback interface
pub type SubscribeCallback
///|
/// Create SubscribeCallback from a MoonBit function
pub extern "js" fn SubscribeCallback::from_fn(
handler : (Subscriber) -> Unit,
) -> SubscribeCallback =
#| (handler) => (a0) => handler(a0)
///|
/// ObservableSubscriptionCallback callback interface
pub type ObservableSubscriptionCallback
///|
/// Create ObservableSubscriptionCallback from a MoonBit function
pub extern "js" fn ObservableSubscriptionCallback::from_fn(
handler : (JsValue) -> Unit,
) -> ObservableSubscriptionCallback =
#| (handler) => (a0) => handler(a0)
///|
/// ObservableInspectorAbortHandler callback interface
pub type ObservableInspectorAbortHandler
///|
/// Create ObservableInspectorAbortHandler from a MoonBit function
pub extern "js" fn ObservableInspectorAbortHandler::from_fn(
handler : (JsValue) -> Unit,
) -> ObservableInspectorAbortHandler =
#| (handler) => (a0) => handler(a0)
///|
/// Predicate callback interface
pub type Predicate
///|
/// Create Predicate from a MoonBit function
pub extern "js" fn Predicate::from_fn(
handler : (JsValue, Int64) -> Bool,
) -> Predicate =
#| (handler) => (a0, a1) => handler(a0, a1)
///|
/// Reducer callback interface
pub type Reducer
///|
/// Create Reducer from a MoonBit function
pub extern "js" fn Reducer::from_fn(
handler : (JsValue, JsValue, Int64) -> JsValue,
) -> Reducer =
#| (handler) => (a0, a1, a2) => handler(a0, a1, a2)
///|
/// Mapper callback interface
pub type Mapper
///|
/// Create Mapper from a MoonBit function
pub extern "js" fn Mapper::from_fn(
handler : (JsValue, Int64) -> JsValue,
) -> Mapper =
#| (handler) => (a0, a1) => handler(a0, a1)
///|
/// Visitor callback interface
pub type Visitor
///|
/// Create Visitor from a MoonBit function
pub extern "js" fn Visitor::from_fn(
handler : (JsValue, Int64) -> Unit,
) -> Visitor =
#| (handler) => (a0, a1) => handler(a0, a1)
///|
/// CatchCallback callback interface
pub type CatchCallback
///|
/// Create CatchCallback from a MoonBit function
pub extern "js" fn CatchCallback::from_fn(
handler : (JsValue) -> JsValue,
) -> CatchCallback =
#| (handler) => (a0) => handler(a0)
///|
/// SubscriptionObserver dictionary
pub(all) struct SubscriptionObserver {
next : ObservableSubscriptionCallback?
error : ObservableSubscriptionCallback?
complete : VoidFunction?
}
///|
/// Create a new SubscriptionObserver with default values
pub fn SubscriptionObserver::default() -> SubscriptionObserver {
SubscriptionObserver::{ next: None, error: None, complete: None }
}
///|
extern "js" fn SubscriptionObserver::to_js_ffi(
self : SubscriptionObserver,
) -> JsValue =
#| (self) => ({
#| next: ((() => { const v = self.next; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| error: ((() => { const v = self.error; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| complete: ((() => { const v = self.complete; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn SubscriptionObserver::to_js(self : SubscriptionObserver) -> JsValue {
SubscriptionObserver::to_js_ffi(self)
}
///|
extern "js" fn SubscriptionObserver::from_js_ffi(
value : JsValue,
) -> SubscriptionObserver =
#| (v) => ({
#| next: (v.next === undefined ? { $tag: 0 } : { $tag: 1, _0: v.next }),
#| error: (v.error === undefined ? { $tag: 0 } : { $tag: 1, _0: v.error }),
#| complete: (v.complete === undefined ? { $tag: 0 } : { $tag: 1, _0: v.complete })
#| })
///|
/// Convert from JsValue
pub fn SubscriptionObserver::from_js(value : JsValue) -> SubscriptionObserver {
SubscriptionObserver::from_js_ffi(value)
}
///|
/// ObservableInspector dictionary
pub(all) struct ObservableInspector {
next : ObservableSubscriptionCallback?
error : ObservableSubscriptionCallback?
complete : VoidFunction?
subscribe : VoidFunction?
abort : ObservableInspectorAbortHandler?
}
///|
/// Create a new ObservableInspector with default values
pub fn ObservableInspector::default() -> ObservableInspector {
ObservableInspector::{
next: None,
error: None,
complete: None,
subscribe: None,
abort: None,
}
}
///|
extern "js" fn ObservableInspector::to_js_ffi(
self : ObservableInspector,
) -> JsValue =
#| (self) => ({
#| next: ((() => { const v = self.next; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| error: ((() => { const v = self.error; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| complete: ((() => { const v = self.complete; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| subscribe: ((() => { const v = self.subscribe; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })()),
#| abort: ((() => { const v = self.abort; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn ObservableInspector::to_js(self : ObservableInspector) -> JsValue {
ObservableInspector::to_js_ffi(self)
}
///|
extern "js" fn ObservableInspector::from_js_ffi(
value : JsValue,
) -> ObservableInspector =
#| (v) => ({
#| next: (v.next === undefined ? { $tag: 0 } : { $tag: 1, _0: v.next }),
#| error: (v.error === undefined ? { $tag: 0 } : { $tag: 1, _0: v.error }),
#| complete: (v.complete === undefined ? { $tag: 0 } : { $tag: 1, _0: v.complete }),
#| subscribe: (v.subscribe === undefined ? { $tag: 0 } : { $tag: 1, _0: v.subscribe }),
#| abort: (v.abort === undefined ? { $tag: 0 } : { $tag: 1, _0: v.abort })
#| })
///|
/// Convert from JsValue
pub fn ObservableInspector::from_js(value : JsValue) -> ObservableInspector {
ObservableInspector::from_js_ffi(value)
}
///|
/// SubscribeOptions dictionary
pub(all) struct SubscribeOptions {
signal : AbortSignal?
}
///|
/// Create a new SubscribeOptions with default values
pub fn SubscribeOptions::default() -> SubscribeOptions {
SubscribeOptions::{ signal: None }
}
///|
extern "js" fn SubscribeOptions::to_js_ffi(self : SubscribeOptions) -> JsValue =
#| (self) => ({
#| signal: ((() => { const v = self.signal; if (v === undefined || v.$tag !== 1) return undefined; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn SubscribeOptions::to_js(self : SubscribeOptions) -> JsValue {
SubscribeOptions::to_js_ffi(self)
}
///|
extern "js" fn SubscribeOptions::from_js_ffi(
value : JsValue,
) -> SubscribeOptions =
#| (v) => ({
#| signal: (v.signal === undefined ? { $tag: 0 } : { $tag: 1, _0: v.signal })
#| })
///|
/// Convert from JsValue
pub fn SubscribeOptions::from_js(value : JsValue) -> SubscribeOptions {
SubscribeOptions::from_js_ffi(value)
}
///|
/// ObservableEventListenerOptions dictionary
pub(all) struct ObservableEventListenerOptions {
capture : Bool?
passive : Bool?
}
///|
/// Create a new ObservableEventListenerOptions with default values
pub fn ObservableEventListenerOptions::default() -> ObservableEventListenerOptions {
ObservableEventListenerOptions::{ capture: None, passive: None }
}
///|
extern "js" fn ObservableEventListenerOptions::to_js_ffi(
self : ObservableEventListenerOptions,
) -> JsValue =
#| (self) => ({
#| capture: (self.capture === -1 ? undefined : self.capture),
#| passive: (self.passive === -1 ? undefined : self.passive)
#| })
///|
/// Convert to JsValue
pub fn ObservableEventListenerOptions::to_js(
self : ObservableEventListenerOptions,
) -> JsValue {
ObservableEventListenerOptions::to_js_ffi(self)
}
///|
extern "js" fn ObservableEventListenerOptions::from_js_ffi(
value : JsValue,
) -> ObservableEventListenerOptions =
#| (v) => ({
#| capture: (v.capture === undefined ? -1 : v.capture),
#| passive: (v.passive === undefined ? -1 : v.passive)
#| })
///|
/// Convert from JsValue
pub fn ObservableEventListenerOptions::from_js(
value : JsValue,
) -> ObservableEventListenerOptions {
ObservableEventListenerOptions::from_js_ffi(value)
}
///|
/// Subscriber interface
pub type Subscriber
///|
pub extern "js" fn Subscriber::to_js_value(self : Subscriber) -> JsValue =
#| (self) => self
///|
/// Cast JsValue to Subscriber (unchecked)
pub extern "js" fn Subscriber::from_js_value(v : JsValue) -> Subscriber =
#| (v) => v
///|
/// Safely cast JsValue to Subscriber (checked with instanceof)
pub extern "js" fn Subscriber::from_js_value_opt(v : JsValue) -> Subscriber? =
#| (v) => (v instanceof Subscriber) ? { $tag: 1, _0: v } : { $tag: 0 }
///|
/// Safely cast JsValue to Subscriber (checked with instanceof)
pub extern "js" fn JsValue::as_subscriber(self : JsValue) -> Subscriber? =
#| (self) => (self instanceof Subscriber) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Cast JsValue to Subscriber (unchecked)
pub extern "js" fn JsValue::to_subscriber(self : JsValue) -> Subscriber =
#| (self) => self
///|
pub extern "js" fn Subscriber::next(self : Subscriber, value : JsValue) -> Unit =
#| (self, value) => self.next(value)
///|
pub extern "js" fn Subscriber::error(
self : Subscriber,
error : JsValue,
) -> Unit =
#| (self, error) => self.error(error)
///|
pub extern "js" fn Subscriber::complete(self : Subscriber) -> Unit =
#| (self) => self.complete()
///|
pub extern "js" fn Subscriber::add_teardown(
self : Subscriber,
teardown : VoidFunction,
) -> Unit =
#| (self, teardown) => self.addTeardown(teardown)
///|
pub extern "js" fn Subscriber::get_active(self : Subscriber) -> Bool =
#| (self) => self.active
///|
pub extern "js" fn Subscriber::get_signal(self : Subscriber) -> AbortSignal =
#| (self) => self.signal
///|
/// Observable interface
pub type Observable
///|
pub extern "js" fn Observable::to_js_value(self : Observable) -> JsValue =
#| (self) => self
///|
/// Cast JsValue to Observable (unchecked)
pub extern "js" fn Observable::from_js_value(v : JsValue) -> Observable =
#| (v) => v
///|
/// Safely cast JsValue to Observable (checked with instanceof)
pub extern "js" fn Observable::from_js_value_opt(v : JsValue) -> Observable? =
#| (v) => (v instanceof Observable) ? { $tag: 1, _0: v } : { $tag: 0 }
///|
/// Safely cast JsValue to Observable (checked with instanceof)
pub extern "js" fn JsValue::as_observable(self : JsValue) -> Observable? =
#| (self) => (self instanceof Observable) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Cast JsValue to Observable (unchecked)
pub extern "js" fn JsValue::to_observable(self : JsValue) -> Observable =
#| (self) => self
///|
pub extern "js" fn Observable::new(callback : SubscribeCallback) -> Observable =
#| (callback) => new Observable(callback)
///|
pub extern "js" fn Observable::subscribe(self : Observable) -> Unit =
#| (self) => self.subscribe()
///|
extern "js" fn Observable::subscribe_with_options_ffi(
self : Observable,
observer : ObserverUnion,
options : JsValue,
) -> Unit =
#| (self, observer, options) => self.subscribe(observer, options)
///|
pub fn Observable::subscribe_with_options(
self : Observable,
observer : ObserverUnion,
options : SubscribeOptions,
) -> Unit {
Observable::subscribe_with_options_ffi(self, observer, options.to_js())
}
///|
pub extern "js" fn Observable::from(value : JsValue) -> Observable =
#| (value) => Observable.from(value)
///|
pub extern "js" fn Observable::take_until(
self : Observable,
value : JsValue,
) -> Observable =
#| (self, value) => self.takeUntil(value)
///|
pub extern "js" fn Observable::map(
self : Observable,
mapper : Mapper,
) -> Observable =
#| (self, mapper) => self.map(mapper)
///|
pub extern "js" fn Observable::filter(
self : Observable,
predicate : Predicate,
) -> Observable =
#| (self, predicate) => self.filter(predicate)
///|
pub extern "js" fn Observable::take(
self : Observable,
amount : Int64,
) -> Observable =
#| (self, amount) => self.take((amount.hi * 4294967296 + amount.lo))
///|
pub extern "js" fn Observable::drop(
self : Observable,
amount : Int64,
) -> Observable =
#| (self, amount) => self.drop((amount.hi * 4294967296 + amount.lo))
///|
pub extern "js" fn Observable::flat_map(
self : Observable,
mapper : Mapper,
) -> Observable =
#| (self, mapper) => self.flatMap(mapper)
///|
pub extern "js" fn Observable::switch_map(
self : Observable,
mapper : Mapper,
) -> Observable =
#| (self, mapper) => self.switchMap(mapper)
///|
pub extern "js" fn Observable::inspect(self : Observable) -> Observable =
#| (self) => self.inspect()
///|
pub extern "js" fn Observable::inspect_with_inspector_union(
self : Observable,
inspector_union : ObservableInspectorUnion,
) -> Observable =
#| (self, inspector_union) => self.inspect(inspector_union)
///|
pub extern "js" fn Observable::catch_(
self : Observable,
callback : CatchCallback,
) -> Observable =
#| (self, callback) => self.catch(callback)
///|
pub extern "js" fn Observable::finally_(
self : Observable,
callback : VoidFunction,
) -> Observable =
#| (self, callback) => self.finally(callback)
///|
pub extern "js" fn Observable::to_array(
self : Observable,
) -> Promise[Array[JsValue]] =
#| (self) => self.toArray()
///|
extern "js" fn Observable::to_array_with_options_ffi(
self : Observable,
options : JsValue,
) -> Promise[Array[JsValue]] =
#| (self, options) => self.toArray(options)
///|
pub fn Observable::to_array_with_options(
self : Observable,
options : SubscribeOptions,
) -> Promise[Array[JsValue]] {
Observable::to_array_with_options_ffi(self, options.to_js())
}
///|
pub extern "js" fn Observable::for_each(
self : Observable,
callback : Visitor,
) -> Promise[Unit] =
#| (self, callback) => self.forEach(callback)
///|
extern "js" fn Observable::for_each_with_options_ffi(
self : Observable,
callback : Visitor,
options : JsValue,
) -> Promise[Unit] =
#| (self, callback, options) => self.forEach(callback, options)
///|
pub fn Observable::for_each_with_options(
self : Observable,
callback : Visitor,
options : SubscribeOptions,
) -> Promise[Unit] {
Observable::for_each_with_options_ffi(self, callback, options.to_js())
}
///|
pub extern "js" fn Observable::every(
self : Observable,
predicate : Predicate,
) -> Promise[Bool] =
#| (self, predicate) => self.every(predicate)
///|
extern "js" fn Observable::every_with_options_ffi(
self : Observable,
predicate : Predicate,
options : JsValue,
) -> Promise[Bool] =
#| (self, predicate, options) => self.every(predicate, options)
///|
pub fn Observable::every_with_options(
self : Observable,
predicate : Predicate,
options : SubscribeOptions,
) -> Promise[Bool] {
Observable::every_with_options_ffi(self, predicate, options.to_js())
}
///|
pub extern "js" fn Observable::first(self : Observable) -> Promise[JsValue] =
#| (self) => self.first()
///|
extern "js" fn Observable::first_with_options_ffi(
self : Observable,
options : JsValue,
) -> Promise[JsValue] =
#| (self, options) => self.first(options)
///|
pub fn Observable::first_with_options(
self : Observable,
options : SubscribeOptions,
) -> Promise[JsValue] {
Observable::first_with_options_ffi(self, options.to_js())
}
///|
pub extern "js" fn Observable::last(self : Observable) -> Promise[JsValue] =
#| (self) => self.last()
///|
extern "js" fn Observable::last_with_options_ffi(
self : Observable,
options : JsValue,
) -> Promise[JsValue] =
#| (self, options) => self.last(options)
///|
pub fn Observable::last_with_options(
self : Observable,
options : SubscribeOptions,
) -> Promise[JsValue] {
Observable::last_with_options_ffi(self, options.to_js())
}
///|
pub extern "js" fn Observable::find(
self : Observable,
predicate : Predicate,
) -> Promise[JsValue] =
#| (self, predicate) => self.find(predicate)
///|
extern "js" fn Observable::find_with_options_ffi(
self : Observable,
predicate : Predicate,
options : JsValue,
) -> Promise[JsValue] =
#| (self, predicate, options) => self.find(predicate, options)
///|
pub fn Observable::find_with_options(
self : Observable,
predicate : Predicate,
options : SubscribeOptions,
) -> Promise[JsValue] {
Observable::find_with_options_ffi(self, predicate, options.to_js())
}
///|
pub extern "js" fn Observable::some(
self : Observable,
predicate : Predicate,
) -> Promise[Bool] =
#| (self, predicate) => self.some(predicate)
///|
extern "js" fn Observable::some_with_options_ffi(
self : Observable,
predicate : Predicate,
options : JsValue,
) -> Promise[Bool] =
#| (self, predicate, options) => self.some(predicate, options)
///|
pub fn Observable::some_with_options(
self : Observable,
predicate : Predicate,
options : SubscribeOptions,
) -> Promise[Bool] {
Observable::some_with_options_ffi(self, predicate, options.to_js())
}
///|
pub extern "js" fn Observable::reduce(
self : Observable,
reducer : Reducer,
) -> Promise[JsValue] =
#| (self, reducer) => self.reduce(reducer)
///|
extern "js" fn Observable::reduce_with_options_ffi(
self : Observable,
reducer : Reducer,
initial_value : JsValue,
options : JsValue,
) -> Promise[JsValue] =
#| (self, reducer, initial_value, options) => self.reduce(reducer, initial_value, options)
///|
pub fn Observable::reduce_with_options(
self : Observable,
reducer : Reducer,
initial_value : JsValue,
options : SubscribeOptions,
) -> Promise[JsValue] {
Observable::reduce_with_options_ffi(
self,
reducer,
initial_value,
options.to_js(),
)
}
///|
pub extern "js" fn Observable::subscribe_with_observable_subscription_callback(
self : Observable,
observer : ObservableSubscriptionCallback,
options : SubscribeOptions,
) -> Unit =
#| (self, observer, options) => self.subscribe(observer, options)
///|
pub extern "js" fn Observable::subscribe_with_subscription_observer(
self : Observable,
observer : SubscriptionObserver,
options : SubscribeOptions,
) -> Unit =
#| (self, observer, options) => self.subscribe(observer, options)
///|
pub extern "js" fn Observable::inspect_with_observable_subscription_callback(
self : Observable,
inspector_union : ObservableSubscriptionCallback,
) -> Observable =
#| (self, inspector_union) => self.inspect(inspector_union)
///|
pub extern "js" fn Observable::inspect_with_observable_inspector(
self : Observable,
inspector_union : ObservableInspector,
) -> Observable =
#| (self, inspector_union) => self.inspect(inspector_union)