eventemitter

event emitter for nim


Keywords
eventemitter, events, on, emit
License
MIT
Install
nimble install eventemitter

Documentation

Simple EventEmitter library for nim.

Examples:

basic usage

import eventemitter
type ReadyArgs = ref object of Args
    text: string
var evts = createEventEmitter()

evts.on("ready") do(a: Args):
    var args = ReadyArgs(a)
    echo args.text, ": from [1st] handler"

evts.once("ready") do(a: Args):
    var args = ReadyArgs(a)
    echo args.text, ": from [2nd] handler"

evts.emit("ready", ReadyArgs(text:"Hello, World"))
evts.emit("ready", ReadyArgs(text:"Hello, World"))

types

type 
  Args* = ref object of RootObj
  Handler = proc (args: Args) {.closure.}
  Event = tuple[name:string, handlers:seq[Handler]]
  EventEmitter = ref object
    events: seq[Event]