blob: 2f6c103cd9bd87e1c43c94945b09f1a49eda5a4a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
|
namespace;
include rt, actor;
typecheck on;
struct Payload { i16 small; u32 large; float fraction; bstr text; }
float handle(Payload* p) { return p.small + p.large + p.fraction + rt.len_s(p.text); }
fn main() {
actor.Actor<Payload*,float>* a = rt.new(actor.Actor<Payload*,float>);
a.spawn(handle); let answer = 0;
a.recv(fn(float n) { answer = n == 6.5; return 0; });
Payload p; p.small = -2; p.large = 4; p.fraction = 1.5; p.text = b"abc";
a.send(&p); a.await(); rt.put_n(answer); rt.put_c(10); a.close(); return 0;
}
|