Constant WASM_RPC_WIT
Source pub const WASM_RPC_WIT: &str = "package golem:rpc@0.2.0;\n\ninterface types {\n use wasi:clocks/wall-clock@0.2.0.{datetime};\n use wasi:io/poll@0.2.0.{pollable};\n\n /// Represents a Golem worker\n record worker-id {\n component-id: component-id,\n worker-name: string\n }\n\n /// Represents a Golem component\n record component-id {\n uuid: uuid,\n }\n\n /// UUID\n record uuid {\n high-bits: u64,\n low-bits: u64\n }\n\n /// Parses a UUID from a string\n parse-uuid: func(uuid: string) -> result<uuid, string>;\n\n /// Converts a UUID to a string\n uuid-to-string: func(uuid: uuid) -> string;\n\n type node-index = s32;\n\n record wit-value {\n nodes: list<wit-node>,\n }\n\n variant wit-node {\n record-value(list<node-index>),\n variant-value(tuple<u32, option<node-index>>),\n enum-value(u32),\n flags-value(list<bool>),\n tuple-value(list<node-index>),\n list-value(list<node-index>),\n option-value(option<node-index>),\n result-value(result<option<node-index>, option<node-index>>),\n prim-u8(u8),\n prim-u16(u16),\n prim-u32(u32),\n prim-u64(u64),\n prim-s8(s8),\n prim-s16(s16),\n prim-s32(s32),\n prim-s64(s64),\n prim-float32(f32),\n prim-float64(f64),\n prim-char(char),\n prim-bool(bool),\n prim-string(string),\n handle(tuple<uri, u64>)\n }\n\n record wit-type {\n nodes: list<wit-type-node>,\n }\n\n type resource-id = u64;\n\n enum resource-mode {\n owned,\n borrowed\n }\n\n variant wit-type-node {\n record-type(list<tuple<string, node-index>>),\n variant-type(list<tuple<string, option<node-index>>>),\n enum-type(list<string>),\n flags-type(list<string>),\n tuple-type(list<node-index>),\n list-type(node-index),\n option-type(node-index),\n result-type(tuple<option<node-index>, option<node-index>>),\n prim-u8-type,\n prim-u16-type,\n prim-u32-type,\n prim-u64-type,\n prim-s8-type,\n prim-s16-type,\n prim-s32-type,\n prim-s64-type,\n prim-f32-type,\n prim-f64-type,\n prim-char-type,\n prim-bool-type,\n prim-string-type,\n handle-type(tuple<resource-id, resource-mode>)\n }\n\n record value-and-type {\n value: wit-value,\n typ: wit-type\n }\n\n record uri {\n value: string,\n }\n\n variant rpc-error {\n protocol-error(string),\n denied(string),\n not-found(string),\n remote-internal-error(string)\n }\n\n resource wasm-rpc {\n constructor(worker-id: worker-id);\n ephemeral: static func(component-id: component-id) -> wasm-rpc;\n\n invoke-and-await: func(function-name: string, function-params: list<wit-value>) -> result<wit-value, rpc-error>;\n invoke: func(function-name: string, function-params: list<wit-value>) -> result<_, rpc-error>;\n\n async-invoke-and-await: func(function-name: string, function-params: list<wit-value>) -> future-invoke-result;\n\n /// Schedule invocation for later\n schedule-invocation: func(scheduled-time: datetime, function-name: string, function-params: list<wit-value>);\n /// Schedule invocation for later. Call cancel on the returned resource to cancel the invocation before the scheduled time.\n schedule-cancelable-invocation: func(scheduled-time: datetime, function-name: string, function-params: list<wit-value>) -> cancellation-token;\n }\n\n resource future-invoke-result {\n subscribe: func() -> pollable;\n get: func() -> option<result<wit-value, rpc-error>>;\n }\n\n resource cancellation-token {\n cancel: func();\n }\n\n extract-value: func(vnt: value-and-type) -> wit-value;\n extract-type: func(vnt: value-and-type) -> wit-type;\n}\n\nworld wit-value {\n import types;\n}\n";