No description
Find a file
2023-07-19 19:51:32 +04:30
src more efficient code 2023-07-19 19:51:32 +04:30
tests add default param test 2023-07-19 19:48:48 +04:30
.gitignore Revert "init" 2023-07-13 14:58:43 +04:30
caster.nimble more efficient code 2023-07-19 19:51:32 +04:30
readme.md add example 2023-07-13 21:32:22 +03:30

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.