diff options
Diffstat (limited to 'file.proto.new')
| -rw-r--r-- | file.proto.new | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/file.proto.new b/file.proto.new deleted file mode 100644 index 1bba651..0000000 --- a/file.proto.new +++ /dev/null @@ -1,103 +0,0 @@ -syntax = "proto3"; - -// Look at "example/fruit.proto" not this file - -// this file is actually used by autogenpb - -// here are some docs, but probably it's just easier to run -// autogenpb on this file and see what gets autogenerated -// in this directory. All autogenerated files are named *.pb.go - -// the 'uuid' standard at the end is an experiment -// establish a way to identify arbitrary .pb files - -// You can generate Marshal & Unmarshal for any struct (message) you want -// You can generate SortBy and Append functions ONLY FOR 'repeated <message>' -// Also, those structs must be defined in the same file -// Additionally, you must use `autogenpb:mutex` on the parent struct. -// The autogenerated code requires a RW mutex and autogenpb will insert it into the struct - -package main; - -// -// below are the actual structs autogen uses -// autogen parses the .proto file and then store the information -// it needs in these protobuf files, then it processes the -// protobuf files to write out *.sort.pb.go and *.marshal.pb.go files -// -message MsgVar { - string varName = 1; // the variable name - string varType = 2; // the variable type - bool isRepeated = 3; // does the variable repeate - bool hasSort = 4; // marked with sort - bool hasUnique = 5; // marked with unique -} - -message MsgName { - string name = 1; // the name of the message aka struct. for this example: "Shelf" - string lockname = 2; // name of the lockfile. ends in Mu - bool doMarshal = 3; // if msg struct should have Marshal & Unmarshal functions - bool doMutex = 4; // true if a mutex is needed for the message struct - bool doProtocMutex = 5; // an experiment to insert a mutex into the protoc generated msg struct (bad idea?) - bool mutexFound = 6; // true if the mutex was added to the protoc pb.go file - repeated string sort = 7; // keys to sort on - repeated string unique = 8; // if the fields should have AppendUnique() functions - repeated MsgVar vars = 9; // store all the vars in the message - bool needIter = 10; // true if the sort iterator has not been generated yet - bool needAll = 11; // true if the sort iterator has not been generated yet - bool noMutex = 12; // only use the global mutex -} - -message Sort { - string msgName = 1; // `autogenpb:unique` File - string varType = 2; // `autogenpb:unique` MsgName - string varName = 3; // `autogenpb:unique` msgNames, sortNames - string lockname = 4; // - bool needAll = 5; // -} - -message Find { - string parent = 1; // `autogenpb:unique` File - string varType = 2; // `autogenpb:unique` MsgName - string varName = 3; // `autogenpb:unique` msgNames, sortNames - bool needAll = 4; // -} - -message File { - // `autogenpb:var:w io.Writer` - string Package = 1; // whatever the package name is at the top of the .go file - string filename = 2; // yellow.proto - string pbfilename = 3; // yellow.pb.go - string filebase = 4; // yellow - string uuid = 5; // the uuid to use in a func NewMsgName() - string version = 6; // the version to use in a func NewMsgName() - MsgName bases = 7; // the message in "plural" form - MsgName base = 8; // the primary repeated message for the master struct - - // every struct in this proto file, this file has: "Apple", "Apples", ... "File", etc... - repeated MsgName msgNames = 9; - repeated MsgName sortNames = 10; // variables that are repeated can have the standard functions generated (Sort(), etc) - map<string, string> iterMap = 11; - repeated Sort toSort = 12; // variables that are repeated can have the standard functions generated (Sort(), etc) - string goPath = 13; // the version to use in a func NewMsgName() -} - -// I know, I know, the whole point of using protobuf -// is so you don't need a uuid or versions because it's -// inherently forward compatable. nonetheless, a simple stubbed out -// trivial and empty protobuf message can marshal and identify all the files -// also, this could be used to modify /usr/bin/file /usr/share/magic to identify the files -// maybe this is already been done and is pointless, but it seems like a good idea -message Files { // `autogenpb:marshal` - string uuid = 1; // `autogenpb:uuid:6c9ae4dd-648d-4b51-9738-bd59fb8fafd5` - string version = 2; // `autogenpb:version:v0.0.38` - repeated File Files = 3; // an array of each .proto file in the working directory -} - -// this generic message is used by autogen to identify and -// then dump the uuid and version from any arbitrary .pb file -message Identify { // `autogenpb:marshal` - string uuid = 1; // - string version = 2; // -} - |
