WASM_RPC_WIT

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";