mirror of
https://github.com/logos-messaging/nim-ffi.git
synced 2026-07-27 18:13:12 +00:00
33 lines
862 B
Nim
33 lines
862 B
Nim
## Compile fixture for `{.ffiConst.}` binding generation (see
|
|
## tests/unit/test_ffi_const.nim): one const of every supported shape, including
|
|
## a computed value and a string needing escapes.
|
|
|
|
import ffi, chronos
|
|
|
|
type ConstLib = object
|
|
base: int
|
|
|
|
declareLibrary("constlib", ConstLib)
|
|
|
|
const
|
|
MaxPeers* {.ffiConst.} = 42
|
|
DefaultTimeoutMs* {.ffiConst.}: uint32 = 3 * 1000
|
|
Ratio* {.ffiConst.} = 1.5
|
|
DebugEnabled* {.ffiConst.} = false
|
|
Greeting* {.ffiConst.} = "he\"llo\n"
|
|
HTTPPort* {.ffiConst.} = 8080
|
|
|
|
type ConstConfig {.ffi.} = object
|
|
base: int
|
|
|
|
proc constlib_create*(cfg: ConstConfig): Future[Result[ConstLib, string]] {.ffiCtor.} =
|
|
return ok(ConstLib(base: cfg.base))
|
|
|
|
proc constlib_base*(lib: ConstLib): Future[Result[int, string]] {.ffi.} =
|
|
return ok(lib.base)
|
|
|
|
proc constlib_destroy*(lib: ConstLib) {.ffiDtor.} =
|
|
discard
|
|
|
|
genBindings()
|