lib/choir/src/composition/abi/root.zig
daab053ee43316e1809a84551d573ddd1e5bf3d2
1 //! Fixed-width C-compatible ABI between independently compiled fragments.
2 //! Frames expose no Zig slices, allocators, errors, or IR pointers. Resources are scoped to one
3 //! loaded composition and one invocation, and incompatible versions fail before payload access.
4
5 pub const contract = @import("contract.zig");
6 pub const context = @import("context.zig");
7 pub const frame = @import("frame.zig");
8
9 pub const version = contract.version;
10 pub const invoke_symbol = contract.invoke_symbol;
11 pub const max_resources = contract.max_resources;
12 pub const Status = contract.Status;
13 pub const Access = contract.Access;
14 pub const decodeStatus = contract.decodeStatus;
15 pub const decodeAccess = contract.decodeAccess;
16 pub const Context = context.Context;
17 pub const Resource = frame.Resource;
18 pub const Frame = frame.Frame;
19 pub const StatusOrResources = frame.StatusOrResources;
20 pub const StatusOrBytes = frame.StatusOrBytes;
21
22 pub const InvokeFn = *const fn (?*Context, u64, ?*Frame) callconv(.c) i64;