No description
Find a file
2025-10-24 21:11:46 +04:00
src chore: keep it updated 2025-10-24 21:11:46 +04:00
.gitignore moving to github 2020-05-17 23:26:38 +03:00
eventemitter.nimble moving to github 2020-05-17 23:26:38 +03:00
LICENSE chore: keep it updated 2025-10-24 21:11:46 +04:00
README.md chore: keep it updated 2025-10-24 21:11:46 +04:00

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  
type Handler* = proc (args: Args) {.closure.}  
type Event* = tuple[name:string, handlers:seq[Handler]]  
type EventEmitter* = ref object  
    events: seq[Event]  

contributing

Feel free to open issues or submit pull requests.