syntax = "proto3"; package main; message Msg { enum MsgKind { START = 0; READ_FILE_SYNC = 1; DATA_RESPONSE = 2; EXIT = 3; SOURCE_CODE_FETCH = 4; SOURCE_CODE_FETCH_RES = 5; SOURCE_CODE_CACHE = 6; } MsgKind kind = 10; oneof payload { StartMsg start = 90; SourceCodeFetchMsg source_code_fetch = 91; SourceCodeFetchResMsg source_code_fetch_res = 92; SourceCodeCacheMsg source_code_cache = 93; } // READ_FILE_SYNC and MKDIRP string path = 20; // DATA_RESPONSE bytes data = 30; string error = 31; // EXIT int32 code = 40; } // START message StartMsg { string cwd = 1; repeated string argv = 2; } message SourceCodeFetchMsg { string filename = 1; } message SourceCodeFetchResMsg { string source_code = 1; string output_code = 2; } message SourceCodeCacheMsg { string filename = 1; string source_code = 2; string output_code = 3; }