Skip to main content

IntoJsGeneric

Trait IntoJsGeneric 

Source
pub trait IntoJsGeneric {
    type JsCanon: JsGeneric;

    // Required method
    fn to_js(self) -> Self::JsCanon;
}
Expand description

Value conversion from a type into its canonical JsGeneric form.

This trait allows types to be converted into JsGeneric supported types, which are required to be erasably generic with JsValue.

The single associated type — rather than a free type parameter bounded by AsRef<T> — is what makes collection-style APIs infer annotation-free. Given an input A, there is exactly one A::JsCanon, so rustc never has to search across multiple AsRef impls to pick a target element type.

§Implementations

Provided impls:

  • JsValue in this crate.
  • Every #[wasm_bindgen]-imported type (identity — emitted by the macro).
  • Every generic js_sys container (Array<T>, Promise<T>, Set<T>, …) provides its own identity impl owned by js_sys.
  • References to cloneable implementors, so borrowed iteration can still produce owned JS-generic values.

This trait is deliberately not blanket-implemented over all JsGeneric types: each implementor explicitly opts in, which leaves room for future wrapper types to pick a non-identity Self::JsCanon.

§Example

ⓘ
use js_sys::{Array, Number};

let arr: Array<Number> = (0..10).map(Number::from).collect();

Required Associated Types§

Source

type JsCanon: JsGeneric

The canonical JsGeneric form of this type.

Required Methods§

Source

fn to_js(self) -> Self::JsCanon

Produce the canonical JsGeneric value for self.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl IntoJsGeneric for AnimationEvent

Source§

impl IntoJsGeneric for AudioBuffer

Source§

impl IntoJsGeneric for AudioBufferSourceNode

Source§

impl IntoJsGeneric for AudioContext

Source§

impl IntoJsGeneric for AudioDestinationNode

Source§

impl IntoJsGeneric for AudioListener

Source§

impl IntoJsGeneric for AudioNode

Source§

impl IntoJsGeneric for AudioParam

Source§

impl IntoJsGeneric for AudioScheduledSourceNode

Source§

impl IntoJsGeneric for BaseAudioContext

Source§

impl IntoJsGeneric for BeforeUnloadEvent

Source§

impl IntoJsGeneric for Blob
where Blob: JsGeneric,

Source§

impl IntoJsGeneric for CanvasGradient

Source§

impl IntoJsGeneric for CanvasRenderingContext2d

Source§

impl IntoJsGeneric for CharacterData

Source§

impl IntoJsGeneric for Clipboard

Source§

impl IntoJsGeneric for ClipboardEvent

Source§

impl IntoJsGeneric for CssStyleDeclaration

Source§

impl IntoJsGeneric for DataTransfer

Source§

impl IntoJsGeneric for Document

Source§

impl IntoJsGeneric for DocumentFragment

Source§

impl IntoJsGeneric for DomRect

Source§

impl IntoJsGeneric for DomRectReadOnly

Source§

impl IntoJsGeneric for DragEvent

Source§

impl IntoJsGeneric for Element

Source§

impl IntoJsGeneric for Event

Source§

impl IntoJsGeneric for EventInit

Source§

impl IntoJsGeneric for EventSource

Source§

impl IntoJsGeneric for EventTarget

Source§

impl IntoJsGeneric for File
where File: JsGeneric,

Source§

impl IntoJsGeneric for FileList

Source§

impl IntoJsGeneric for FileReader

Source§

impl IntoJsGeneric for FocusEvent

Source§

impl IntoJsGeneric for GainNode

Source§

impl IntoJsGeneric for Gamepad

Source§

impl IntoJsGeneric for GamepadButton

Source§

impl IntoJsGeneric for GamepadEvent

Source§

impl IntoJsGeneric for HashChangeEvent

Source§

impl IntoJsGeneric for History

Source§

impl IntoJsGeneric for HtmlButtonElement

Source§

impl IntoJsGeneric for HtmlCanvasElement

Source§

impl IntoJsGeneric for HtmlCollection

Source§

impl IntoJsGeneric for HtmlElement

Source§

impl IntoJsGeneric for HtmlFormElement

Source§

impl IntoJsGeneric for HtmlHeadElement

Source§

impl IntoJsGeneric for HtmlImageElement

Source§

impl IntoJsGeneric for HtmlInputElement

Source§

impl IntoJsGeneric for HtmlMediaElement

Source§

impl IntoJsGeneric for HtmlMetaElement

Source§

impl IntoJsGeneric for HtmlOptionElement

Source§

impl IntoJsGeneric for HtmlSelectElement

Source§

impl IntoJsGeneric for HtmlStyleElement

Source§

impl IntoJsGeneric for HtmlTextAreaElement

Source§

impl IntoJsGeneric for HtmlVideoElement

Source§

impl IntoJsGeneric for ImageData

Source§

impl IntoJsGeneric for InputEvent

Source§

impl IntoJsGeneric for IntersectionObserver

Source§

impl IntoJsGeneric for IntersectionObserverEntry

Source§

impl IntoJsGeneric for IntersectionObserverInit

Source§

impl IntoJsGeneric for KeyboardEvent

Source§

impl IntoJsGeneric for Location

Source§

impl IntoJsGeneric for MediaDevices

Source§

impl IntoJsGeneric for MediaQueryList

Source§

impl IntoJsGeneric for MediaStream

Source§

impl IntoJsGeneric for MediaStreamConstraints

Source§

impl IntoJsGeneric for MediaStreamTrack

Source§

impl IntoJsGeneric for MessageEvent

Source§

impl IntoJsGeneric for MouseEvent

Source§

impl IntoJsGeneric for Navigator

Source§

impl IntoJsGeneric for Node
where Node: JsGeneric,

Source§

impl IntoJsGeneric for NodeList

Source§

impl IntoJsGeneric for Performance

Source§

impl IntoJsGeneric for ResizeObserver

Source§

impl IntoJsGeneric for ResizeObserverEntry

Source§

impl IntoJsGeneric for Response

Source§

impl IntoJsGeneric for ScrollIntoViewOptions

Source§

impl IntoJsGeneric for Storage

Source§

impl IntoJsGeneric for SubmitEvent

Source§

impl IntoJsGeneric for Text
where Text: JsGeneric,

Source§

impl IntoJsGeneric for Touch

Source§

impl IntoJsGeneric for TouchEvent

Source§

impl IntoJsGeneric for TouchList

Source§

impl IntoJsGeneric for TransitionEvent

Source§

impl IntoJsGeneric for UiEvent

Source§

impl IntoJsGeneric for VisualViewport

Source§

impl IntoJsGeneric for WebGl2RenderingContext

Source§

impl IntoJsGeneric for WebGlBuffer

Source§

impl IntoJsGeneric for WebGlContextAttributes

Source§

impl IntoJsGeneric for WebGlFramebuffer

Source§

impl IntoJsGeneric for WebGlProgram

Source§

impl IntoJsGeneric for WebGlRenderbuffer

Source§

impl IntoJsGeneric for WebGlShader

Source§

impl IntoJsGeneric for WebGlTexture

Source§

impl IntoJsGeneric for WebGlUniformLocation

Source§

impl IntoJsGeneric for WebGlVertexArrayObject

Source§

impl IntoJsGeneric for WebSocket

Source§

impl IntoJsGeneric for WheelEvent

Source§

impl IntoJsGeneric for Window

Source§

impl<T> IntoJsGeneric for &T
where T: IntoJsGeneric + Clone,

Implementors§

Source§

impl IntoJsGeneric for AggregateError

Source§

impl IntoJsGeneric for ArrayBuffer

Source§

impl IntoJsGeneric for ArrayBufferOptions

Source§

impl IntoJsGeneric for BigInt64Array

Source§

impl IntoJsGeneric for BigInt

Source§

impl IntoJsGeneric for BigUint64Array

Source§

impl IntoJsGeneric for Boolean

Source§

impl IntoJsGeneric for Collator

Source§

impl IntoJsGeneric for CollatorOptions

Source§

impl IntoJsGeneric for CompileError

Source§

impl IntoJsGeneric for DataView

Source§

impl IntoJsGeneric for Date
where Date: JsGeneric,

Source§

impl IntoJsGeneric for DateTimeFormat

Source§

impl IntoJsGeneric for DateTimeFormatOptions

Source§

impl IntoJsGeneric for DateTimeFormatPart

Source§

impl IntoJsGeneric for DateTimeRangeFormatPart

Source§

impl IntoJsGeneric for DisplayNames

Source§

impl IntoJsGeneric for DisplayNamesOptions

Source§

impl IntoJsGeneric for Duration

Source§

impl IntoJsGeneric for DurationFormat

Source§

impl IntoJsGeneric for DurationFormatOptions

Source§

impl IntoJsGeneric for DurationFormatPart

Source§

impl IntoJsGeneric for Error

Source§

impl IntoJsGeneric for ErrorOptions

Source§

impl IntoJsGeneric for EvalError

Source§

impl IntoJsGeneric for Exception

Source§

impl IntoJsGeneric for FinalizationRegistry

Source§

impl IntoJsGeneric for Float16Array

Source§

impl IntoJsGeneric for Float32Array

Source§

impl IntoJsGeneric for Float64Array

Source§

impl IntoJsGeneric for Global

Source§

impl IntoJsGeneric for Instance

Source§

impl IntoJsGeneric for Int8Array

Source§

impl IntoJsGeneric for Int16Array

Source§

impl IntoJsGeneric for Int32Array

Source§

impl IntoJsGeneric for JsString

Source§

impl IntoJsGeneric for JsValue

Source§

impl IntoJsGeneric for LinkError

Source§

impl IntoJsGeneric for ListFormat

Source§

impl IntoJsGeneric for ListFormatOptions

Source§

impl IntoJsGeneric for ListFormatPart

Source§

impl IntoJsGeneric for Locale

Source§

impl IntoJsGeneric for LocaleMatcherOptions

Source§

impl IntoJsGeneric for Memory

Source§

impl IntoJsGeneric for Module

Source§

impl IntoJsGeneric for Null
where Null: JsGeneric,

Source§

impl IntoJsGeneric for Number

Source§

impl IntoJsGeneric for NumberFormat

Source§

impl IntoJsGeneric for NumberFormatOptions

Source§

impl IntoJsGeneric for NumberFormatPart

Source§

impl IntoJsGeneric for NumberRangeFormatPart

Source§

impl IntoJsGeneric for PluralRules

Source§

impl IntoJsGeneric for PluralRulesOptions

Source§

impl IntoJsGeneric for Proxy

Source§

impl IntoJsGeneric for RangeError

Source§

impl IntoJsGeneric for ReferenceError

Source§

impl IntoJsGeneric for RegExp

Source§

impl IntoJsGeneric for RegExpMatchArray

Source§

impl IntoJsGeneric for RelativeTimeFormat

Source§

impl IntoJsGeneric for RelativeTimeFormatOptions

Source§

impl IntoJsGeneric for RelativeTimeFormatPart

Source§

impl IntoJsGeneric for ResolvedCollatorOptions

Source§

impl IntoJsGeneric for ResolvedDateTimeFormatOptions

Source§

impl IntoJsGeneric for ResolvedDisplayNamesOptions

Source§

impl IntoJsGeneric for ResolvedDurationFormatOptions

Source§

impl IntoJsGeneric for ResolvedListFormatOptions

Source§

impl IntoJsGeneric for ResolvedNumberFormatOptions

Source§

impl IntoJsGeneric for ResolvedPluralRulesOptions

Source§

impl IntoJsGeneric for ResolvedRelativeTimeFormatOptions

Source§

impl IntoJsGeneric for ResolvedSegmenterOptions

Source§

impl IntoJsGeneric for RuntimeError

Source§

impl IntoJsGeneric for SegmentData

Source§

impl IntoJsGeneric for Segmenter

Source§

impl IntoJsGeneric for SegmenterOptions

Source§

impl IntoJsGeneric for Segments

Source§

impl IntoJsGeneric for SharedArrayBuffer

Source§

impl IntoJsGeneric for Suspending

Source§

impl IntoJsGeneric for Symbol

Source§

impl IntoJsGeneric for SyntaxError

Source§

impl IntoJsGeneric for Table

Source§

impl IntoJsGeneric for Tag
where Tag: JsGeneric,

Source§

impl IntoJsGeneric for TextInfo

Source§

impl IntoJsGeneric for TypeError

Source§

impl IntoJsGeneric for Uint8Array

Source§

impl IntoJsGeneric for Uint8ClampedArray

Source§

impl IntoJsGeneric for Uint16Array

Source§

impl IntoJsGeneric for Uint32Array

Source§

impl IntoJsGeneric for Undefined

Source§

impl IntoJsGeneric for UriError

Source§

impl IntoJsGeneric for WeekInfo

Source§

impl<K, V> IntoJsGeneric for Map<K, V>
where Map<K, V>: JsGeneric,

Source§

type JsCanon = Map<K, V>

Source§

impl<K, V> IntoJsGeneric for WeakMap<K, V>
where WeakMap<K, V>: JsGeneric,

Source§

impl<T> IntoJsGeneric for Array<T>
where Array<T>: JsGeneric,

Source§

impl<T> IntoJsGeneric for ArrayTuple<T>

Source§

impl<T> IntoJsGeneric for AsyncGenerator<T>

Source§

impl<T> IntoJsGeneric for AsyncIterator<T>

Source§

impl<T> IntoJsGeneric for Function<T>

Source§

impl<T> IntoJsGeneric for Generator<T>
where Generator<T>: JsGeneric,

Source§

impl<T> IntoJsGeneric for Iterator<T>
where Iterator<T>: JsGeneric,

Source§

impl<T> IntoJsGeneric for IteratorNext<T>

Source§

impl<T> IntoJsGeneric for JsNullable<T>

Source§

impl<T> IntoJsGeneric for JsOption<T>
where JsOption<T>: JsGeneric,

Source§

impl<T> IntoJsGeneric for Object<T>
where Object<T>: JsGeneric,

Source§

impl<T> IntoJsGeneric for Promise<T>
where Promise<T>: JsGeneric,

Source§

impl<T> IntoJsGeneric for PromiseState<T>

Source§

impl<T> IntoJsGeneric for PropertyDescriptor<T>

Source§

impl<T> IntoJsGeneric for Set<T>
where Set<T>: JsGeneric,

Source§

impl<T> IntoJsGeneric for WeakRef<T>
where WeakRef<T>: JsGeneric,

Source§

impl<T> IntoJsGeneric for WeakSet<T>
where WeakSet<T>: JsGeneric,