#[repr(u8)]pub enum Message {
Hello(Hello),
Connect {
request_id: u64,
metadata: Metadata,
},
Accept {
request_id: u64,
conn_id: ConnectionId,
metadata: Metadata,
},
Reject {
request_id: u64,
reason: String,
metadata: Metadata,
},
Goodbye {
conn_id: ConnectionId,
reason: String,
},
Request {
conn_id: ConnectionId,
request_id: u64,
method_id: u64,
metadata: Metadata,
channels: Vec<u64>,
payload: Vec<u8>,
},
Response {
conn_id: ConnectionId,
request_id: u64,
metadata: Metadata,
channels: Vec<u64>,
payload: Vec<u8>,
},
Cancel {
conn_id: ConnectionId,
request_id: u64,
},
Data {
conn_id: ConnectionId,
channel_id: u64,
payload: Vec<u8>,
},
Close {
conn_id: ConnectionId,
channel_id: u64,
},
Reset {
conn_id: ConnectionId,
channel_id: u64,
},
Credit {
conn_id: ConnectionId,
channel_id: u64,
bytes: u32,
},
}Expand description
Protocol message.
Variant order is wire-significant (postcard enum discriminants).
§Virtual Connections (v2.0.0)
A link carries multiple virtual connections, each with its own request ID space, channel ID space, and dispatcher. Connection 0 is implicit on link establishment. Additional connections are opened via Connect/Accept/Reject.
All messages except Hello, Connect, Accept, and Reject include a conn_id
field identifying which virtual connection they belong to.
Variants§
Hello(Hello)
r[impl message.hello.timing] - Sent immediately after link establishment.
Connect
r[impl message.connect.initiate] - Request a new virtual connection.
Accept
r[impl message.accept.response] - Accept a virtual connection request.
Reject
r[impl message.reject.response] - Reject a virtual connection request.
Goodbye
r[impl message.goodbye.send] - Close a virtual connection. r[impl message.goodbye.connection-zero] - Goodbye on conn 0 closes entire link.
Request
r[impl core.metadata] - Request carries metadata key-value pairs. r[impl call.metadata.unknown] - Unknown keys are ignored. r[impl channeling.request.channels] - Channel IDs listed explicitly for proxy support.
Fields
conn_id: ConnectionIdResponse
r[impl core.metadata] - Response carries metadata key-value pairs. r[impl call.metadata.unknown] - Unknown keys are ignored.
Fields
conn_id: ConnectionIdCancel
r[impl call.cancel.message] - Cancel message requests callee stop processing. r[impl call.cancel.no-response-required] - Caller should timeout, not wait indefinitely.