mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-06-27 11:59:26 +00:00
Rewrite the C FFI over the new per-layer APIs using nim-ffi v0.2.0 typed
{.ffiCtor.}/{.ffiDtor.}/{.ffi.}/{.ffiEvent.} + CBOR, replacing the
hand-written cstring/JSON bridge and the declare/lifecycle scaffolding.
Final API shape from the start (no intermediate request wrappers):
- every {.ffi.} proc takes its parameters directly; the macro bundles them
into the per-proc CBOR request, so no `*Request` objects are needed
- WakuMessage rides the wire directly (its fields are CBOR-serializable)
- multi-parameter {.ffiEvent.} via the rc.3 envelope synthesis
- events are fed by internal nim-broker listeners (no AppCallbacks)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 lines
441 B
Nim
14 lines
441 B
Nim
proc subscribe*(
|
|
self: LogosDelivery, contentTopic: string
|
|
): Future[Result[string, string]] {.ffi.} =
|
|
(await self.messagingClient.subscribe(ContentTopic(contentTopic))).isOkOr:
|
|
return err(error)
|
|
return ok("")
|
|
|
|
proc unsubscribe*(
|
|
self: LogosDelivery, contentTopic: string
|
|
): Future[Result[string, string]] {.ffi.} =
|
|
self.messagingClient.unsubscribe(ContentTopic(contentTopic)).isOkOr:
|
|
return err(error)
|
|
return ok("")
|