Skip to content

Commit

Permalink
Implement datatypes into sagittarius protocol
Browse files Browse the repository at this point in the history
  • Loading branch information
Taucher2003 committed Nov 18, 2024
1 parent d23f291 commit 559f6e1
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 0 deletions.
53 changes: 53 additions & 0 deletions proto/sagittarius/datatype.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
syntax = "proto3";
import "translations.proto";
import "google/protobuf/any.proto";

option ruby_package = "Tucana::Sagittarius";

package sagittarius;

message DataType {
enum Variant {
UNKNOWN = 0;
PRIMITIVE = 1;
TYPE = 2;
OBJECT = 3;
DATATYPE = 4;
ARRAY = 5;
GENERIC = 6;
FUNCTION = 7;
}

shared.Translation name = 1;
Variant variant = 2;
repeated DataTypeRule rules = 3;
repeated DataType input_types = 4;
optional DataType return_type = 5;
optional DataType parent_type = 6;
}

message DataTypeRule {
enum Variant {
UNKNOWN = 0;
REGEX = 1;
NUMBER_RANGE = 2;
ITEM_OF_COLLECTION = 3;
CONTAINS_TYPE = 4;
CONTAINS_KEY = 5;
}

Variant variant = 1;
map<string, google.protobuf.Any> config = 2;
}

message DataTypeUpdateRequest {
repeated DataType data_types = 1;
}

message DataTypeUpdateResponse {
bool success = 1;
}

service DataTypeService {
rpc Update(DataTypeUpdateRequest) returns (DataTypeUpdateResponse) {}
}
10 changes: 10 additions & 0 deletions proto/shared/translations.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
syntax = "proto3";

option ruby_package = "Tucana::Shared";

package shared;

message Translation {
string code = 1;
string text = 2;
}

0 comments on commit 559f6e1

Please sign in to comment.