pub struct Isolate { /* private fields */ }Expand description
Simple wrapper around the Dart Isolate Port, nothing else.
Implementations§
Source§impl Isolate
impl Isolate
Sourcepub const fn new(port: i64) -> Self
pub const fn new(port: i64) -> Self
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);Sourcepub fn post(&self, msg: impl IntoDart) -> bool
pub fn post(&self, msg: impl IntoDart) -> bool
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 !");Sourcepub async fn task<T, R>(self, t: T) -> bool
pub async fn task<T, R>(self, t: T) -> bool
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 }));