caster
casting macro for procedure parameters
Summary
| Latest Version | 0.0.2 |
|---|---|
| License | MIT |
| CI Status | Failing |
| Downloads | 0 |
| Last Indexed | 2026-07-21 05:26 |
Tags
Authors
- hamidb80
Installation
nimble install caster
choosenim install caster
git clone https://github.com/hamidb80/caster/
OS Compatibility
| Platform | Linux | macOS | Windows | FreeBSD | OpenBSD | NetBSD | Android | iOS | WASM | Embedded |
|---|---|---|---|---|---|---|---|---|---|---|
| caster | ✓ | ✓ | ✓ | - | - | - | - | - | - | - |
Dependencies
| Package | Version | Optional |
|---|---|---|
| nim >= | 1.6.14 | No |
| macroplus >= | 0.2.5 | No |
Source
| Repository | https://github.com/hamidb80/caster/ |
|---|---|
| Homepage | https://github.com/hamidb80/caster/ |
| Registry Source | nimble_official |
README
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.