mirror of
https://github.com/hexedtech/codemp.git
synced 2024-11-22 15:24:48 +01:00
51 lines
1.1 KiB
Protocol Buffer
51 lines
1.1 KiB
Protocol Buffer
syntax = "proto3";
|
|
package workspace;
|
|
|
|
service Workspace {
|
|
rpc Join (JoinRequest) returns (stream WorkspaceEvent);
|
|
rpc Subscribe (stream CursorUpdate) returns (stream CursorUpdate);
|
|
rpc ListUsers (WorkspaceRequest) returns (UsersList);
|
|
rpc Buffers (WorkspaceRequest) returns (BufferList);
|
|
rpc NewBuffer (BufferRequest) returns (WorkspaceResponse);
|
|
rpc RemoveBuffer (BufferRequest) returns (WorkspaceResponse);
|
|
}
|
|
|
|
message JoinRequest {
|
|
string name = 1;
|
|
}
|
|
|
|
message WorkspaceEvent {
|
|
int32 id = 1;
|
|
optional string body = 2;
|
|
}
|
|
|
|
// nvim-rs passes everything as i64, so having them as i64 in the packet itself is convenient
|
|
// TODO can we make them i32 and save some space?
|
|
message CursorUpdate {
|
|
string username = 1;
|
|
int64 buffer = 2;
|
|
int64 col = 3;
|
|
int64 row = 4;
|
|
}
|
|
|
|
message WorkspaceRequest {
|
|
string sessionKey = 1;
|
|
}
|
|
|
|
message BufferRequest {
|
|
string sessionKey = 1;
|
|
string path = 2;
|
|
}
|
|
|
|
message WorkspaceResponse {
|
|
bool accepted = 1;
|
|
}
|
|
|
|
message BufferList {
|
|
repeated string path = 1;
|
|
}
|
|
|
|
message UsersList {
|
|
repeated string name = 1;
|
|
}
|
|
|