v / examples / eventbus
Raw file | 33 loc (26 sloc) | 725 bytes | Latest commit hash 4215bb125
1module main
2
3import some_module
4
5struct Receiver {
6mut:
7 ok bool
8}
9
10fn main() {
11 mut sub := some_module.get_subscriber()
12 r := Receiver{}
13 sub.subscribe_method('event_foo', on_foo, r)
14 sub.subscribe('event_bar', on_bar)
15 sub.subscribe('event_baz', on_baz)
16
17 println('Receiver ok: ' + r.ok.str())
18 some_module.do_work()
19 println('Receiver ok: ' + r.ok.str())
20}
21
22fn on_foo(mut receiver Receiver, e &some_module.EventMetadata, sender voidptr) {
23 receiver.ok = true
24 println('on_foo :: ' + e.message)
25}
26
27fn on_bar(receiver voidptr, e &some_module.EventMetadata, sender voidptr) {
28 println('on_bar :: ' + e.message)
29}
30
31fn on_baz(receiver voidptr, event voidptr, d &some_module.Duration) {
32 println('on_baz :: ' + d.hours.str())
33}