Module sozu_command_lib::proto
source · Expand description
Contains Rust types generated by prost
using the protobuf definition in command.proto
.
The two main types are Request
and Response
.
Because these types were originally defined in Rust, and later adapted for protobuf,
the Rust translation of the protobuf definition looks a bit weird. Instead of having
Request
being a simple enum with Payload like this:
ⓘ
pub enum Request {
SaveState(String),
LoadState(String),
// ...
}
It is defined with oneof
in protobuf. and looks like this in Rust:
ⓘ
pub struct Request {
pub request_type: ::core::option::Option<request::RequestType>,
}
pub mod request {
pub enum RequestType {
#[prost(string, tag = "1")]
SaveState(::prost::alloc::string::String),
/// load a state file, given its path
#[prost(string, tag = "2")]
LoadState(::prost::alloc::string::String),
}
}
but can be instantiated this way:
ⓘ
let load_state_request: Request = RequestType::LoadState(path).into();
A bit cumbersome, but it is the only way to benefit from protobuf in Rust.
Modules§
- Contains all types received by and sent from Sōzu
- Implementation of fmt::Display for the protobuf types, used in the CLI