Skip to content

hamidb80/caster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Caster

casting sugar for procedure parameters.

Example

It is specially useful in event handling scenarios:

type
  Event = ref object of RootObj
  MouseEvent = ref object of Event
    mousex, mousey: int

elem.addEventListener proc(me: MouseEvent) = discard # error: Expected `Event` but got `MouseEvent`
elem.addEventListener proc(me: Event as MouseEvent) {.caster.} = # works!
  echo me.mousex
  # ...

More

see docs or ./tests/test.nim.