Read a Zig pub fn prototype into data so a signatureless defnz can
infer its boundary contract from the co-located source. prototype
parses only the declaration, never the body: the parameter bindings and
their Zig type strings, and the return type string. Mapping those strings
to boundary type forms is a separate step. Pure.
Read a Zig `pub fn` prototype into data so a signatureless `defnz` can infer its boundary contract from the co-located source. `prototype` parses only the declaration, never the body: the parameter bindings and their Zig type strings, and the return type string. Mapping those strings to boundary type forms is a separate step. Pure.
(infer-signature zig-text fn-name)The boundary signature vector inferred from fn-name's prototype in
zig-text: each parameter's binding and boundary type, then :ret and
the return type. Throws :clj-zig/inferred-fn-not-found when the file
declares no such pub fn, and :clj-zig/contract-policy-needed when the
return is a slice or pointer, whose ownership or handle policy must be
stated in an explicit signature.
The boundary signature vector inferred from `fn-name`'s prototype in `zig-text`: each parameter's binding and boundary type, then `:ret` and the return type. Throws `:clj-zig/inferred-fn-not-found` when the file declares no such `pub fn`, and `:clj-zig/contract-policy-needed` when the return is a slice or pointer, whose ownership or handle policy must be stated in an explicit signature.
(prototype zig-text fn-name)The prototype of pub fn <fn-name> in zig-text, or nil when the file
declares no such function. Returns {:name <fn-name> :params [{:binding :zig-type}...] :ret <return-type-string>}, with type strings left
verbatim for a later mapping step. Parses the declaration only.
The prototype of `pub fn <fn-name>` in `zig-text`, or nil when the file
declares no such function. Returns `{:name <fn-name> :params [{:binding
:zig-type}...] :ret <return-type-string>}`, with type strings left
verbatim for a later mapping step. Parses the declaration only.(zig-type->boundary type-str)(zig-type->boundary type-str position)The boundary type form for a Zig type string at position (:param
default, :return). A []const u8 param infers to :string; a
returned slice or pointer yields ::policy-needed.
The boundary type form for a Zig type string at `position` (`:param` default, `:return`). A `[]const u8` param infers to `:string`; a returned slice or pointer yields `::policy-needed`.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |