Expand description
The wire-level argument type a plugin manifest declares.
Guest plugins describe their signatures as JSON. Every loader that reads a
manifest — the Extism loader and the Component-Model (uni-plugin-wasm)
loader — has to agree on that schema, or the same manifest loads under one
runtime and is rejected by the other.
They did not agree. Each loader carried its own WireArgType and the two
had drifted: Extism’s had Primitive, CypherValue, Vector and
Variadic; the Component-Model loader’s had only the first two. Because
both use #[serde(tag = "kind", deny_unknown_fields)], a manifest
declaring kind: "vector" or kind: "variadic" deserialized fine over
Extism and failed to parse under the Component-Model loader.
The type lives here so there is one schema. It carries the union of what
the two loaders needed from their derives: Serialize (Extism round-trips
manifests), Deserialize (both parse them), and PartialEq + Eq (Extism’s
export tests match on values).
Mapping to the internal crate::traits::scalar::ArgType stays in each
loader, since the error types differ.
Enums§
- Wire
ArgType - Wire-level argument type shipped by a plugin manifest.