Struct Once

Source
pub struct Once<T>(pub T);
Expand description

A wrapper for passing FnOnce callbacks into the js! macro.

Since it only supports FnOnce callbacks there is no need to drop() them manually on the JavaScript side provided they were actually called.

You still need to drop() any callbacks which were not called.

§Examples

let callback = || { println!( "Hello world!" ); };
js! {
    var cb = @{Once(callback)};
    cb();
    // There is no need to drop it; since the function
    // is only callable once it automatically drops
    // itself after being called.
}

Tuple Fields§

§0: T

Trait Implementations§

Source§

impl<T> Debug for Once<T>

Source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> Freeze for Once<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for Once<T>
where T: RefUnwindSafe,

§

impl<T> Send for Once<T>
where T: Send,

§

impl<T> Sync for Once<T>
where T: Sync,

§

impl<T> Unpin for Once<T>
where T: Unpin,

§

impl<T> UnwindSafe for Once<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.