FileSystemService.WriteRequest should either accept path + mode or a FileChunk per incoming message. Introducing the oneof will help with the ambiguity of what happens when all the fields are set.
It could look like:
// Metadata required to initialize the file write stream.
message FileMetadata {
// Absolute or workspace-relative path of the file to write.
string path = 1;
// Optional POSIX file mode permission (e.g. 0644 or 0755).
uint32 mode = 2;
}
// Streamed request chunk for writing data to a file.
message WriteFileRequest {
oneof request {
// Sent only on the first message to initialize the stream.
FileMetadata metadata = 1;
// Sent on all subsequent messages containing the file data.
FileChunk chunk = 2;
}
}
FileSystemService.WriteRequestshould either acceptpath+modeor aFileChunkper incoming message. Introducing theoneofwill help with the ambiguity of what happens when all the fields are set.It could look like: