ffi_names.rs |
Functions to calculate names for FFI symbols
All of these functions input a `namespace` parameter which is:
- The UDL namespace for UDL-based generation
- The "module path" of the item for proc-macro based generation. Right now this is actually just the
crate name, but we eventually hope to make this the full module path.
This could cause collisions in the case where you combine UDL and proc-macro generation and you
set the UDL namespace to the name of another crate. This seems so pathological that it's not
worth the code complexity to prevent it. |
3730 |
group.rs |
|
9358 |
lib.rs |
|
16000 |
metadata.rs |
|
3216 |
reader.rs |
|
19732 |
types.rs |
# Basic typesystem for defining a component interface.
This module provides the "API-level" typesystem of a UniFFI Rust Component, that is,
the types provided by the Rust implementation and consumed callers of the foreign language
bindings. Think "objects" and "enums" and "records".
The [`Type`] enum represents high-level types that would appear in the public API of
a component, such as enums and records as well as primitives like ints and strings.
The Rust code that implements a component, and the foreign language bindings that consume it,
will both typically deal with such types as their core concern.
As a developer working on UniFFI itself, you're likely to spend a fair bit of time thinking
about how these API-level types map into the lower-level types of the FFI layer as represented
by the [`ffi::FfiType`](super::ffi::FfiType) enum, but that's a detail that is invisible to end users. |
7200 |