diff options
author | Indrajith K L | 2022-12-03 17:00:20 +0530 |
---|---|---|
committer | Indrajith K L | 2022-12-03 17:00:20 +0530 |
commit | f5c4671bfbad96bf346bd7e9a21fc4317b4959df (patch) | |
tree | 2764fc62da58f2ba8da7ed341643fc359873142f /v_windows/v/old/examples/eventbus | |
download | cli-tools-windows-master.tar.gz cli-tools-windows-master.tar.bz2 cli-tools-windows-master.zip |
Diffstat (limited to 'v_windows/v/old/examples/eventbus')
-rw-r--r-- | v_windows/v/old/examples/eventbus/eventbus.v | 13 | ||||
-rw-r--r-- | v_windows/v/old/examples/eventbus/modules/some_module/some_module.v | 34 |
2 files changed, 47 insertions, 0 deletions
diff --git a/v_windows/v/old/examples/eventbus/eventbus.v b/v_windows/v/old/examples/eventbus/eventbus.v new file mode 100644 index 0000000..042feb8 --- /dev/null +++ b/v_windows/v/old/examples/eventbus/eventbus.v @@ -0,0 +1,13 @@ +module main + +import some_module + +fn main() { + mut sub := some_module.get_subscriber() + sub.subscribe('error', on_error) + some_module.do_work() +} + +fn on_error(sender voidptr, e &some_module.MyError, x voidptr) { + println(e.message) +} diff --git a/v_windows/v/old/examples/eventbus/modules/some_module/some_module.v b/v_windows/v/old/examples/eventbus/modules/some_module/some_module.v new file mode 100644 index 0000000..01231fb --- /dev/null +++ b/v_windows/v/old/examples/eventbus/modules/some_module/some_module.v @@ -0,0 +1,34 @@ +module some_module + +import eventbus + +const ( + eb = eventbus.new() +) + +pub struct Work { +pub: + hours int +} + +pub struct MyError { +pub: + message string +} + +pub fn do_work() { + work := Work{20} + for i in 0 .. 20 { + println('working...') + if i == 15 { + error := &MyError{'There was an error.'} + some_module.eb.publish('error', work, error) + some_module.eb.publish('error', work, error) + return + } + } +} + +pub fn get_subscriber() eventbus.Subscriber { + return *some_module.eb.subscriber +} |