[−][src]Struct allo_isolate::Isolate
Simple wrapper around the Dart Isolate Port, nothing else.
Implementations
impl Isolate[src]
pub const fn new(port: i64) -> Self[src]
Create a new Isolate with a port obtained from Dart VM side.
Example
this a non realistic example lol :D
let isolate = Isolate::new(42);
pub fn post(&self, msg: impl IntoDart) -> bool[src]
Post an object to the Isolate over the port
Object must implement IntoDart.
returns true if the message posted successfully, otherwise false
Safety
This assumes that you called store_dart_post_cobject and we have
access to the Dart_PostCObject function pointer also, we do check
if it is not null.
Example
let isolate = Isolate::new(42); isolate.post("Hello Dart !");
pub async fn task<T, R>(self, t: T) -> bool where
T: Future<Output = R> + Send + 'static,
R: Send + IntoDart + 'static, [src]
T: Future<Output = R> + Send + 'static,
R: Send + IntoDart + 'static,
Consumes Self, Runs the task, await for the result and then post it
to the Isolate over the port
Result must implement IntoDart.
returns true if the message posted successfully, otherwise false
Safety
This assumes that you called store_dart_post_cobject and we have
access to the Dart_PostCObject function pointer also, we do check
if it is not null.
Example
use async_std::task; let isolate = Isolate::new(42); task::spawn(isolate.task(async { 1 + 2 }));
pub async fn catch_unwind<T, R>(self, t: T) -> Result<bool, Box<dyn Any + Send>> where
T: Future<Output = R> + Send + 'static,
R: Send + IntoDart + 'static, [src]
T: Future<Output = R> + Send + 'static,
R: Send + IntoDart + 'static,
Similar to Isolate::task but with more logic to catch any panic and
report it back
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Isolate
impl Send for Isolate
impl Sync for Isolate
impl Unpin for Isolate
impl UnwindSafe for Isolate
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,