wasmflow-interface 0.10.0

Types used by the Wasmflow tool chain
Documentation
namespace "wasmflow::interface"

"An enum representing the types of components that can be hosted."
enum HostedType {
  "A collection."
  Collection = 0,
}

alias FieldMap = {string: TypeSignature}

union Help = CollectionSignature | ComponentSignature

type CollectionSignature {
  "Name of the collection."
  name: string?,
  "Schema format version."
  format: u32,
  "Version of the schema."
  version: string,
  "A map of type signatures referenced elsewhere."
  wellknown: [WellKnownSchema],
  "A map of type signatures referenced elsewhere."
  types: {string: TypeSignature},
  "A list of ComponentSignatures the collection hosts."
  components: {string: ComponentSignature},
  "The component's configuration for this implementation."
  config: {string: TypeSignature},
}

"The signature of a Wasmflow component, including its input and output types."
type ComponentSignature {
  "The name of the component."
  name: string,
  "The component's inputs."
  inputs: {string: TypeSignature},
  "The component's outputs."
  outputs: {string: TypeSignature},
}


"An entry from a well-known schema"
type WellKnownSchema {
  "The capability the schema provides."
  capabilities: [string],
  "The location where you can find and validate the schema."
  url: string,
  "The schema itself."
  schema: CollectionSignature,
}

"Signatures of enum type definitions."
type EnumSignature {
  "The name of the enum."
  name: string,
  "The variants in the enum."
  values: [EnumVariant],
}

"An enum variant definition"
type EnumVariant {
  "The name of the variant."
  name: string,
  "The index of the variant."
  index: u32,
}

"Signatures of struct-like type definitions."
type StructSignature {
  "The name of the struct."
  name: string,
  "The fields in this struct."
  fields: {string: TypeSignature},
}

"Enum of valid types."
enum TypeSignature {
  "I8 type."
  I8 = 0,
  "I16 type."
  I16 = 1,
  "I32 type."
  I32 = 2,
  "I64 type."
  I64 = 3,
  "u8 type."
  U8 = 4,
  "u16 type."
  U16 = 5,
  "u32 type."
  U32 = 6,
  "u64 type."
  U64 = 7,
  "f32 type."
  F32 = 8,
  "f64 type."
  F64 = 9,
  "Boolean type."
  Bool = 10,
  "string type."
  String = 11,
  "Date type."
  Datetime = 12,
  "Raw bytes."
  Bytes = 13,
  "Any valid value."
  Value = 14,
  "An internal type."
  Internal = 15,
  "A reference to another type."
  Ref = 16,
  "A list type"
  List = 17,
  "A type representing an optional value."
  Optional = 18,
  "A HashMap-like type."
  Map = 19,
  "A type representing a CollectionLink."
  Link = 20,
  "A JSON-like key/value map."
  Struct = 21,
}

"Internal types for use within the Wasmflow runtime"
enum InternalType {
  "Represents a complete set of component inputs"
  ComponentInput = 0,
}