1 use std::fmt; 2 3 /// A wrapper for passing `FnMut` callbacks into the `js!` macro. 4 /// 5 /// Just like when passing regular `Fn` callbacks, don't forget 6 /// to `drop()` them on the JavaScript side or else the closure 7 /// will be leaked. 8 /// 9 /// # Examples 10 /// 11 /// ```rust 12 /// let mut count = 0; 13 /// let callback = move || { 14 /// count += 1; 15 /// println!( "Callback called {} times", count ); 16 /// }; 17 /// js! { 18 /// var cb = @{Mut(callback)}; 19 /// cb(); 20 /// cb(); 21 /// cb(); 22 /// cb.drop(); 23 /// } 24 /// ``` 25 pub struct Mut< T >( pub T ); 26 27 impl< T > fmt::Debug for Mut< T > { 28 #[inline] fmt( &self, formatter: &mut fmt::Formatter ) -> Result< (), fmt::Error >29 fn fmt( &self, formatter: &mut fmt::Formatter ) -> Result< (), fmt::Error > { 30 write!( formatter, "Mut" ) 31 } 32 } 33