diff options
Diffstat (limited to 'tests/run/teventemitter.nim')
-rw-r--r-- | tests/run/teventemitter.nim | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/tests/run/teventemitter.nim b/tests/run/teventemitter.nim deleted file mode 100644 index 8394776a8..000000000 --- a/tests/run/teventemitter.nim +++ /dev/null @@ -1,31 +0,0 @@ -discard """ - output: "pie" -""" - -import tables, lists - -type - TEventArgs = object of TObject - TEventEmitter = object of TObject - events*: TTable[string, TDoublyLinkedList[proc(e: TEventArgs)]] - -proc emit*(emitter: TEventEmitter, event: string, args: TEventArgs) = - for func in nodes(emitter.events[event]): - func.value(args) #call function with args. - -proc on*(emitter: var TEventEmitter, event: string, func: proc(e: TEventArgs)) = - if not hasKey(emitter.events, event): - var list: TDoublyLinkedList[proc(e: TEventArgs)] - add(emitter.events, event, list) #if not, add it. - append(emitter.events.mget(event), func) - -proc initEmitter(emitter: var TEventEmitter) = - emitter.events = initTable[string, TDoublyLinkedList[proc(e: TEventArgs)]]() - -var - ee: TEventEmitter - args: TEventArgs -initEmitter(ee) -ee.on("print", proc(e: TEventArgs) = echo("pie")) -ee.emit("print", args) - |