module

Vow::Exportable::Marked

Consumer-driven dispatch registration, for a downstream framework that has its OWN export annotation (Vow knows nothing about it). The framework includes this and calls vow_register_marked(registry, MyAnnotation) from one of its own instance methods. Because the macro expands in the consumer's class context (@type is that class), Vow registers every method carrying marker with the exact decode → invoke → JSON-encode callback it generates for @[Vow::Export] — so the consumer reuses Vow's dispatch instead of reimplementing it, while keeping its own annotation, ids, and any sidecar metadata (async scheduling, routing, …) on the side.

The wire id is <ClassPath with :: as .>.<method camelCased> and each wire key is the camelCased parameter name — identical to @[Vow::Export]. A leading Vow::Context (or subclass) parameter opts the method into the per-call context exactly as it does under @[Vow::Export]. Arg defaults are honored (an omitted optional key falls back to the signature default).

This is intentionally narrower than @[Vow::Export]: it does not read the marker's options (the marker is the consumer's own annotation, with its own fields), so there is no name:/skip:/opts handling — the consumer layers any such concern on top.

Macros

vow_register_marked(registry, marker)
Source