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 }));