pub struct OptionalRef<T: OptionalBlock> { /* private fields */ }
Implementations§
Source§impl<D: Dealloc> OptionalRef<AnyInternal<D>>
impl<D: Dealloc> OptionalRef<AnyInternal<D>>
pub fn is<T: AnyCast<D>>(&self) -> bool
Sourcepub fn move_from<T: AnyCast<D>>(t: T) -> Self
pub fn move_from<T: AnyCast<D>>(t: T) -> Self
T
should have the same allocator as Any
.
use nanvm_lib::{js::{any::Any, js_string::JsStringRef}, mem::{manager::Dealloc, ref_::Ref}};
fn dummy<A: Dealloc>(s: JsStringRef<A>) -> Any<A> {
Any::move_from(s)
}
ⓘ
use nanvm_lib::{js::{any::Any, js_string::JsStringRef}, mem::{manager::Dealloc, ref_::Ref}};
fn dummy<A: Dealloc, B: Dealloc>(s: JsStringRef<A>) -> Any<B> {
Any::move_from(s)
}
pub fn try_move<T: AnyCast<D>>(self) -> Result<T, ()>
pub fn get_type(&self) -> Type
Sourcepub fn try_ref<T: RefCast<D>>(&self) -> Result<&Block<T, D>, ()>
pub fn try_ref<T: RefCast<D>>(&self) -> Result<&Block<T, D>, ()>
T
should have the same allocator as Any
.
use nanvm_lib::{js::{any::Any, js_string::JsStringRef}, mem::{manager::Dealloc, ref_::Ref}};
fn dummy<A: Dealloc>(a: Any<A>) -> JsStringRef<A> {
a.try_move().unwrap()
}
ⓘ
use nanvm_lib::{js::{any::Any, js_string::JsStringRef}, mem::{manager::Dealloc, ref_::Ref}};
fn dummy<A: Dealloc, B: Dealloc>(a: Any<A>) -> JsStringRef, B> {
a.try_move().unwrap()
}
Source§impl<T: OptionalBlock> OptionalRef<T>
impl<T: OptionalBlock> OptionalRef<T>
pub const unsafe fn from_internal(value: T) -> Self
pub const unsafe fn internal(&self) -> T
pub fn is_ref(&self) -> bool
pub unsafe fn move_to_internal(self) -> T
Trait Implementations§
Source§impl<T: OptionalBlock> Clone for OptionalRef<T>
impl<T: OptionalBlock> Clone for OptionalRef<T>
Source§impl<T: Debug + OptionalBlock> Debug for OptionalRef<T>
impl<T: Debug + OptionalBlock> Debug for OptionalRef<T>
Source§impl<T: OptionalBlock> Drop for OptionalRef<T>
impl<T: OptionalBlock> Drop for OptionalRef<T>
Source§impl<T: OptionalBlock> Hash for OptionalRef<T>
impl<T: OptionalBlock> Hash for OptionalRef<T>
Source§impl<T: OptionalBlock> PartialEq for OptionalRef<T>
impl<T: OptionalBlock> PartialEq for OptionalRef<T>
impl<T: OptionalBlock> Eq for OptionalRef<T>
Auto Trait Implementations§
impl<T> Freeze for OptionalRef<T>where
T: Freeze,
impl<T> RefUnwindSafe for OptionalRef<T>where
T: RefUnwindSafe,
impl<T> Send for OptionalRef<T>where
T: Send,
impl<T> Sync for OptionalRef<T>where
T: Sync,
impl<T> Unpin for OptionalRef<T>where
T: Unpin,
impl<T> UnwindSafe for OptionalRef<T>where
T: UnwindSafe,
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
Mutably borrows from an owned value. Read more