Expand description
Type definitions, including full Serialize
and Deserialize
implementations, for the protocol
used for communication between the engine and a plugin.
See the plugin protocol reference for more details on what exactly is being specified here.
Plugins accept messages of PluginInput
and send messages back of PluginOutput
. This
crate explicitly avoids implementing any functionality that depends on I/O, so the exact
byte-level encoding scheme is not implemented here. See the protocol ref or nu_plugin_core
for
more details on how that works.
Structs§
- Additional information about byte streams
- Information about a plugin command invocation. This includes an
EvaluatedCall
as a serializable representation ofnu_protocol::ast::Call
. The type parameter determines the input type. - A representation of the plugin’s invocation command including command line args
- Additional information about list (value) streams
- An opaque container for a custom value that is handled fully by a plugin.
- Protocol information, sent as a
Hello
message on initialization. This determines the compatibility of the plugin and engine. They are considered to be compatible if the lower version is semver compatible with the higher one.
Enums§
- Operations supported for custom values.
- A remote call back to the engine during the plugin’s execution.
- The response to an
EngineCall
. The type parameter determines the output type for pipeline data. - Indicates optional protocol features. This can help to make non-breaking-change additions to the protocol. Features are not restricted to plain strings and can contain additional configuration data.
- This is just a serializable version of
std::cmp::Ordering
, and can be converted 1:1 - The initial (and perhaps only) part of any
nu_protocol::PipelineData
sent over the wire. - Calls that a plugin can execute. The type parameter determines the input type.
- Response to a
PluginCall
. The type parameter determines the output type for pipeline data. - Any data sent to the plugin
- Options that can be changed to affect how the engine treats the plugin
- Information received from the plugin
- Indicates the protocol in use. Only one protocol is supported.
- A single item of stream data for a stream.
- A stream control or data message.
Type Aliases§
- A sequential identifier for an
EngineCall
- A sequential identifier for a
PluginCall
- A sequential identifier for a stream