50 lines
1.2 KiB
Markdown
50 lines
1.2 KiB
Markdown
Functions and Custom Types Metadata
|
|
===================================
|
|
|
|
{{#include ../../links.md}}
|
|
|
|
~~~admonish warning.small "Requires `metadata`"
|
|
|
|
Exporting metadata requires the [`metadata`] feature.
|
|
~~~
|
|
|
|
|
|
Functions
|
|
---------
|
|
|
|
The _metadata_ of a [function] means all relevant information related to a function's
|
|
definition including:
|
|
|
|
1. Its callable name
|
|
|
|
2. Its access mode (public or [private][`private`])
|
|
|
|
3. Its parameter names and types (if any)
|
|
|
|
4. Its return value and type (if any)
|
|
|
|
5. Its nature (i.e. native Rust or Rhai-scripted)
|
|
|
|
6. Its [namespace][function namespace] ([module] or global)
|
|
|
|
7. Its purpose, in the form of [doc-comments]
|
|
|
|
8. Usage notes, warnings, examples etc., in the form of [doc-comments]
|
|
|
|
A function's _signature_ encapsulates the first four pieces of information in a single concise line
|
|
of definition:
|
|
|
|
> `[private]` _name_ `(`_param 1_`:`_type 1_`,` _param 2_`:`_type 2_`,` ... `,` _param n_`:`_type n_`) ->` _return type_
|
|
|
|
|
|
Custom Types
|
|
------------
|
|
|
|
The _metadata_ of a [custom type] include:
|
|
|
|
1. Its full Rust type name
|
|
|
|
2. Its pretty-print _display name_ (which can be the same as its Rust type name)
|
|
|
|
3. Its purpose, in the form of [doc-comments]
|