Native binding contract
This dependency’s descriptor names native symbols, ownership rules, errors, and ABI types. The compiler checks August declarations against it. Native code must honor the declared rules.
json
{
"format": 1,
"profile": "aug-native-abi-1",
"resources": [
{
"module": "bindings",
"name": "Device",
"release": "aug_gpu_device_release_v1"
},
{
"module": "bindings",
"name": "Buffer",
"release": "aug_gpu_buffer_release_v1"
}
],
"functions": [
{
"module": "api",
"name": "_open",
"symbol": "aug_gpu_open_v1",
"params": [],
"result": {
"kind": "resource",
"resource": "bindings.Device"
},
"error": "contracts.GpuError",
"callingConvention": "C",
"status": "i32",
"uses": [],
"changes": [],
"thread": "caller",
"retainsInputs": false,
"workerSafe": true
},
{
"module": "api",
"name": "_upload",
"symbol": "aug_gpu_upload_v1",
"params": [
{
"name": "device",
"ownership": "read",
"kind": "resource",
"resource": "bindings.Device"
},
{
"name": "values",
"kind": "f64-list"
}
],
"result": {
"kind": "resource",
"resource": "bindings.Buffer"
},
"error": "contracts.GpuError",
"callingConvention": "C",
"status": "i32",
"uses": [],
"changes": [],
"thread": "caller",
"retainsInputs": false,
"workerSafe": true
},
{
"module": "api",
"name": "_add",
"symbol": "aug_gpu_add_v1",
"params": [
{
"name": "left",
"ownership": "read",
"kind": "resource",
"resource": "bindings.Buffer"
},
{
"name": "right",
"ownership": "read",
"kind": "resource",
"resource": "bindings.Buffer"
}
],
"result": {
"kind": "resource",
"resource": "bindings.Buffer"
},
"error": "contracts.GpuError",
"callingConvention": "C",
"status": "i32",
"uses": [],
"changes": [],
"thread": "caller",
"retainsInputs": false,
"workerSafe": true
},
{
"module": "api",
"name": "_download",
"symbol": "aug_gpu_download_v1",
"params": [
{
"name": "buffer",
"ownership": "read",
"kind": "resource",
"resource": "bindings.Buffer"
}
],
"result": {
"kind": "f64-list",
"release": "aug_gpu_values_release_v1"
},
"error": "contracts.GpuError",
"callingConvention": "C",
"status": "i32",
"uses": [],
"changes": [],
"thread": "caller",
"retainsInputs": false,
"workerSafe": true
},
{
"module": "api",
"name": "_live",
"symbol": "aug_gpu_live_resources_v1",
"params": [],
"result": {
"kind": "i64"
},
"callingConvention": "C",
"status": "direct",
"uses": [],
"changes": [],
"thread": "caller",
"retainsInputs": false,
"workerSafe": true
}
]
}