Struct libp2p::wasm_ext::ffi::Connection
source · #[repr(transparent)]pub struct Connection { /* private fields */ }
Expand description
Type of the object that represents an open connection with a remote.
Implementations§
source§impl Connection
impl Connection
sourcepub fn read(&self) -> Iterator
pub fn read(&self) -> Iterator
Returns an iterator of JavaScript Promise
s that resolve to ArrayBuffer
objects
(or resolve to null, see below). These ArrayBuffer
objects contain the data that the
remote has sent to us. If the remote closes the connection, the iterator must produce
a Promise
that resolves to null
.
source§impl Connection
impl Connection
sourcepub fn write(&self, data: &[u8]) -> Result<Promise, JsValue>
pub fn write(&self, data: &[u8]) -> Result<Promise, JsValue>
Writes data to the connection. Returns a Promise
that resolves when the connection is
ready for writing again.
If the Promise
produces an error, the writing side of the connection is considered
unrecoverable and the connection should be closed as soon as possible.
Guaranteed to only be called after the previous write promise has resolved.
source§impl Connection
impl Connection
source§impl Connection
impl Connection
Methods from Deref<Target = JsValue>§
pub const NULL: JsValue = JsValue{ idx: JSIDX_NULL, _marker: marker::PhantomData,}
pub const UNDEFINED: JsValue = JsValue{ idx: JSIDX_UNDEFINED, _marker: marker::PhantomData,}
pub const TRUE: JsValue = JsValue{ idx: JSIDX_TRUE, _marker: marker::PhantomData,}
pub const FALSE: JsValue = JsValue{ idx: JSIDX_FALSE, _marker: marker::PhantomData,}
sourcepub fn as_f64(&self) -> Option<f64>
pub fn as_f64(&self) -> Option<f64>
Returns the f64
value of this JS value if it’s an instance of a
number.
If this JS value is not an instance of a number then this returns
None
.
sourcepub fn as_string(&self) -> Option<String>
pub fn as_string(&self) -> Option<String>
If this JS value is a string value, this function copies the JS string
value into wasm linear memory, encoded as UTF-8, and returns it as a
Rust String
.
To avoid the copying and re-encoding, consider the
JsString::try_from()
function from js-sys
instead.
If this JS value is not an instance of a string or if it’s not valid
utf-8 then this returns None
.
UTF-16 vs UTF-8
JavaScript strings in general are encoded as UTF-16, but Rust strings
are encoded as UTF-8. This can cause the Rust string to look a bit
different than the JS string sometimes. For more details see the
documentation about the str
type which contains a few
caveats about the encodings.
sourcepub fn as_bool(&self) -> Option<bool>
pub fn as_bool(&self) -> Option<bool>
Returns the bool
value of this JS value if it’s an instance of a
boolean.
If this JS value is not an instance of a boolean then this returns
None
.
sourcepub fn is_undefined(&self) -> bool
pub fn is_undefined(&self) -> bool
Tests whether this JS value is undefined
sourcepub fn is_function(&self) -> bool
pub fn is_function(&self) -> bool
Tests whether the type of this JS value is function
.
sourcepub fn js_in(&self, obj: &JsValue) -> bool
pub fn js_in(&self, obj: &JsValue) -> bool
Applies the binary in
JS operator on the two JsValue
s.
sourcepub fn loose_eq(&self, other: &JsValue) -> bool
pub fn loose_eq(&self, other: &JsValue) -> bool
Compare two JsValue
s for equality, using the ==
operator in JS.
sourcepub fn unsigned_shr(&self, rhs: &JsValue) -> u32
pub fn unsigned_shr(&self, rhs: &JsValue) -> u32
Applies the binary >>>
JS operator on the two JsValue
s.
sourcepub fn checked_div(&self, rhs: &JsValue) -> JsValue
pub fn checked_div(&self, rhs: &JsValue) -> JsValue
Applies the binary /
JS operator on two JsValue
s, catching and returning any RangeError
thrown.
sourcepub fn pow(&self, rhs: &JsValue) -> JsValue
pub fn pow(&self, rhs: &JsValue) -> JsValue
Applies the binary **
JS operator on the two JsValue
s.
sourcepub fn lt(&self, other: &JsValue) -> bool
pub fn lt(&self, other: &JsValue) -> bool
Applies the binary <
JS operator on the two JsValue
s.
sourcepub fn le(&self, other: &JsValue) -> bool
pub fn le(&self, other: &JsValue) -> bool
Applies the binary <=
JS operator on the two JsValue
s.
sourcepub fn ge(&self, other: &JsValue) -> bool
pub fn ge(&self, other: &JsValue) -> bool
Applies the binary >=
JS operator on the two JsValue
s.
sourcepub fn gt(&self, other: &JsValue) -> bool
pub fn gt(&self, other: &JsValue) -> bool
Applies the binary >
JS operator on the two JsValue
s.
sourcepub fn unchecked_into_f64(&self) -> f64
pub fn unchecked_into_f64(&self) -> f64
Applies the unary +
JS operator on a JsValue
. Can throw.
Trait Implementations§
source§impl AsRef<Connection> for Connection
impl AsRef<Connection> for Connection
source§fn as_ref(&self) -> &Connection
fn as_ref(&self) -> &Connection
source§impl AsRef<JsValue> for Connection
impl AsRef<JsValue> for Connection
source§impl Deref for Connection
impl Deref for Connection
source§impl From<Connection> for JsValue
impl From<Connection> for JsValue
source§fn from(obj: Connection) -> JsValue
fn from(obj: Connection) -> JsValue
source§impl From<JsValue> for Connection
impl From<JsValue> for Connection
source§fn from(obj: JsValue) -> Connection
fn from(obj: JsValue) -> Connection
source§impl FromWasmAbi for Connection
impl FromWasmAbi for Connection
§type Abi = <JsValue as FromWasmAbi>::Abi
type Abi = <JsValue as FromWasmAbi>::Abi
source§unsafe fn from_abi(js: <Connection as FromWasmAbi>::Abi) -> Connection
unsafe fn from_abi(js: <Connection as FromWasmAbi>::Abi) -> Connection
source§impl<'a> IntoWasmAbi for &'a Connection
impl<'a> IntoWasmAbi for &'a Connection
§type Abi = <&'a JsValue as IntoWasmAbi>::Abi
type Abi = <&'a JsValue as IntoWasmAbi>::Abi
source§fn into_abi(self) -> <&'a Connection as IntoWasmAbi>::Abi
fn into_abi(self) -> <&'a Connection as IntoWasmAbi>::Abi
self
into Self::Abi
so that it can be sent across the wasm
ABI boundary.source§impl IntoWasmAbi for Connection
impl IntoWasmAbi for Connection
§type Abi = <JsValue as IntoWasmAbi>::Abi
type Abi = <JsValue as IntoWasmAbi>::Abi
source§fn into_abi(self) -> <Connection as IntoWasmAbi>::Abi
fn into_abi(self) -> <Connection as IntoWasmAbi>::Abi
self
into Self::Abi
so that it can be sent across the wasm
ABI boundary.source§impl JsCast for Connection
impl JsCast for Connection
source§fn instanceof(val: &JsValue) -> bool
fn instanceof(val: &JsValue) -> bool
instanceof
check to see whether the JsValue
provided is an instance of this type. Read moresource§fn unchecked_from_js(val: JsValue) -> Connection
fn unchecked_from_js(val: JsValue) -> Connection
source§fn unchecked_from_js_ref(val: &JsValue) -> &Connection
fn unchecked_from_js_ref(val: &JsValue) -> &Connection
source§fn has_type<T>(&self) -> boolwhere
T: JsCast,
fn has_type<T>(&self) -> boolwhere T: JsCast,
T
. Read moresource§fn dyn_into<T>(self) -> Result<T, Self>where
T: JsCast,
fn dyn_into<T>(self) -> Result<T, Self>where T: JsCast,
T
. Read moresource§fn dyn_ref<T>(&self) -> Option<&T>where
T: JsCast,
fn dyn_ref<T>(&self) -> Option<&T>where T: JsCast,
T
. Read moresource§fn unchecked_into<T>(self) -> Twhere
T: JsCast,
fn unchecked_into<T>(self) -> Twhere T: JsCast,
source§fn unchecked_ref<T>(&self) -> &Twhere
T: JsCast,
fn unchecked_ref<T>(&self) -> &Twhere T: JsCast,
source§impl LongRefFromWasmAbi for Connection
impl LongRefFromWasmAbi for Connection
§type Abi = <JsValue as LongRefFromWasmAbi>::Abi
type Abi = <JsValue as LongRefFromWasmAbi>::Abi
RefFromWasmAbi::Abi
§type Anchor = Connection
type Anchor = Connection
RefFromWasmAbi::Anchor
source§unsafe fn long_ref_from_abi(
js: <Connection as LongRefFromWasmAbi>::Abi
) -> <Connection as LongRefFromWasmAbi>::Anchor
unsafe fn long_ref_from_abi( js: <Connection as LongRefFromWasmAbi>::Abi ) -> <Connection as LongRefFromWasmAbi>::Anchor
RefFromWasmAbi::ref_from_abi
source§impl OptionFromWasmAbi for Connection
impl OptionFromWasmAbi for Connection
source§fn is_none(abi: &<Connection as FromWasmAbi>::Abi) -> bool
fn is_none(abi: &<Connection as FromWasmAbi>::Abi) -> bool
None
, and otherwise it will be passed to
FromWasmAbi
.source§impl<'a> OptionIntoWasmAbi for &'a Connection
impl<'a> OptionIntoWasmAbi for &'a Connection
source§fn none() -> <&'a Connection as IntoWasmAbi>::Abi
fn none() -> <&'a Connection as IntoWasmAbi>::Abi
None
branch of this option. Read moresource§impl OptionIntoWasmAbi for Connection
impl OptionIntoWasmAbi for Connection
source§fn none() -> <Connection as IntoWasmAbi>::Abi
fn none() -> <Connection as IntoWasmAbi>::Abi
None
branch of this option. Read moresource§impl RefFromWasmAbi for Connection
impl RefFromWasmAbi for Connection
§type Abi = <JsValue as RefFromWasmAbi>::Abi
type Abi = <JsValue as RefFromWasmAbi>::Abi
Self
are recovered from.§type Anchor = ManuallyDrop<Connection>
type Anchor = ManuallyDrop<Connection>
Self
for the duration of the
invocation of the function that has an &Self
parameter. This is
required to ensure that the lifetimes don’t persist beyond one function
call, and so that they remain anonymous.source§unsafe fn ref_from_abi(
js: <Connection as RefFromWasmAbi>::Abi
) -> <Connection as RefFromWasmAbi>::Anchor
unsafe fn ref_from_abi( js: <Connection as RefFromWasmAbi>::Abi ) -> <Connection as RefFromWasmAbi>::Anchor
Auto Trait Implementations§
impl RefUnwindSafe for Connection
impl !Send for Connection
impl !Sync for Connection
impl Unpin for Connection
impl UnwindSafe for Connection
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
source§impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
impl<T> ReturnWasmAbi for Twhere T: IntoWasmAbi,
§type Abi = <T as IntoWasmAbi>::Abi
type Abi = <T as IntoWasmAbi>::Abi
IntoWasmAbi::Abi
source§fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
IntoWasmAbi::into_abi
, except that it may throw and never
return in the case of Err
.