krpc-rs 0.3.1

The basic types for communicating with the Kerbal Space Program Remote Procedure Calls mod, implemented in rust
Documentation
syntax = "proto3";
package krpc.schema;
option csharp_namespace = 'KRPC.Schema.KRPC';
option java_package = 'krpc.schema';
option java_outer_classname = 'KRPC';

message Request {
  string service = 1;
  string procedure = 2;
  repeated Argument arguments = 3;
}

message Argument {
  uint32 position = 1;
  bytes value = 2;
}

message Response {
  double time = 1;
  bool has_error = 2;
  string error = 3;
  bool has_return_value = 4;
  bytes return_value = 5;
}

message StreamMessage {
  repeated StreamResponse responses = 1;
}

message StreamResponse {
  uint32 id = 1;
  Response response = 2;
}

message Services {
  repeated Service services = 1;
}

message Service {
  string name = 1;
  repeated Procedure procedures = 2;
  repeated Class classes = 3;
  repeated Enumeration enumerations = 4;
  string documentation = 5;
}

message Procedure {
  string name = 1;
  repeated Parameter parameters = 2;
  bool has_return_type = 3;
  string return_type = 4;
  repeated string attributes = 5;
  string documentation = 6;
}

message Parameter {
  string name = 1;
  string type = 2;
  bool has_default_value = 3;
  bytes default_value = 4;
}

message Class {
  string name = 1;
  string documentation = 2;
}

message Enumeration {
  string name = 1;
  repeated EnumerationValue values = 2;
  string documentation = 3;
}

message EnumerationValue {
  string name = 1;
  int32 value = 2;
  string documentation = 3;
}

message List {
  repeated bytes items = 1;
}

message Dictionary {
  repeated DictionaryEntry entries = 1;
}

message DictionaryEntry {
  bytes key = 1;
  bytes value = 2;
}

message Set {
  repeated bytes items = 1;
}

message Tuple {
  repeated bytes items = 1;
}

message Status {
  string version = 1;
  uint64 bytes_read = 2;
  uint64 bytes_written = 3;
  float bytes_read_rate = 4;
  float bytes_written_rate = 5;
  uint64 rpcs_executed = 6;
  float rpc_rate = 7;
  bool one_rpc_per_update = 8;
  uint32 max_time_per_update = 9;
  bool adaptive_rate_control = 10;
  bool blocking_recv = 11;
  uint32 recv_timeout = 12;
  float time_per_rpc_update = 13;
  float poll_time_per_rpc_update = 14;
  float exec_time_per_rpc_update = 15;
  uint32 stream_rpcs = 16;
  uint64 stream_rpcs_executed = 17;
  float stream_rpc_rate = 18;
  float time_per_stream_update = 19;
}