1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//! The canonical WeaveFFI C ABI lowering.
//!
//! This module is the single source of truth for *how a resolved type lowers
//! onto the stable C ABI*: the ordered C slots of every parameter and return
//! and how every [`Ty`](crate::ty::Ty) crosses the boundary (by value, as a
//! pointer, as `ptr`+`len`, as a serialized value buffer, with a trailing
//! `out_err`, and so on). The [`Model`](crate::model::Model) assembles these
//! slots into each symbol's full signature once.
//!
//! Every language generator and the producer macro read the resulting
//! [`CType`]s from the model and map them onto their own FFI vocabulary. The
//! C rendering ([`CType::render_c`]) is the canonical one.
pub use ;
pub use ;
/// The trailing `out_err` parameter every fallible WeaveFFI symbol carries.
/// The `void* context` token threaded through async completion callbacks.
/// The leading `void* ctx` slot of every callback-interface method (the
/// consumer's opaque implementation handle).
/// The optional `{prefix}_cancel_token*` parameter of a cancellable async call.