86 lines
3.5 KiB
Protocol Buffer
86 lines
3.5 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
// playing around with ideas here
|
|
|
|
package gitpb;
|
|
|
|
import "google/protobuf/timestamp.proto"; // Import the well-known type for Timestamp
|
|
import "widget.proto"; // Import the well-known type for Timestamp
|
|
|
|
//
|
|
// this code was written this way to make it easy for me
|
|
// to originally implement and auto generate the needed code
|
|
// with autogenpb
|
|
//
|
|
|
|
// experiments in various options. think about this more.
|
|
|
|
message ColAttr {
|
|
enum VarType {
|
|
ANY = 0;
|
|
INT = 1;
|
|
STRING = 2;
|
|
TIME = 3;
|
|
DURATION = 4;
|
|
BYTES = 5;
|
|
}
|
|
int32 pad = 1;
|
|
int32 width = 2;
|
|
bool click = 3;
|
|
VarType type = 4;
|
|
}
|
|
message StringCol {
|
|
Widget header = 1;
|
|
repeated Widget widgets = 2;
|
|
ColAttr attr = 3;
|
|
repeated string vals = 4; // deprecate
|
|
}
|
|
|
|
message ButtonCol {
|
|
Widget header = 1;
|
|
repeated Widget widgets = 2;
|
|
ColAttr attr = 3;
|
|
repeated string vals = 4; // deprecate
|
|
}
|
|
|
|
message IntCol {
|
|
Widget header = 1;
|
|
repeated Widget widgets = 2;
|
|
ColAttr attr = 3;
|
|
repeated int64 vals = 4; // deprecate
|
|
}
|
|
|
|
message TimeCol {
|
|
Widget header = 1;
|
|
repeated Widget widgets = 2;
|
|
ColAttr attr = 3;
|
|
repeated google.protobuf.Timestamp vals = 4; // deprecate
|
|
}
|
|
|
|
message BoolCol {
|
|
Widget header = 1;
|
|
repeated Widget widgets = 2;
|
|
ColAttr attr = 3;
|
|
repeated bool vals = 4; // deprecate
|
|
}
|
|
|
|
message Table { // `autogenpb:marshal`
|
|
string uuid = 1;
|
|
string title = 2;
|
|
Widget parent = 3;
|
|
Widget grid = 4;
|
|
repeated string order = 5;
|
|
repeated StringCol stringCols = 6;
|
|
repeated IntCol intCols = 7;
|
|
repeated TimeCol timeCols = 8;
|
|
repeated BoolCol boolCols = 9;
|
|
repeated ButtonCol buttonCols = 10;
|
|
int64 height = 11; // the number of rows
|
|
}
|
|
|
|
message Tables { // `autogenpb:marshal`
|
|
string uuid = 1; // `autogenpb:uuid:c328aa62-3c4f-4d00-9244-cc44ae75ab1b`
|
|
string version = 2; // `autogenpb:version:v1`
|
|
repeated Table Tables = 3;
|
|
}
|