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 68dbe87
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 1 deletion.
10 changes: 9 additions & 1 deletion build/ruby/Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,15 @@ namespace :generate_ruby do

Dir["#{output_dir}/*_pb.rb"].each do |file|
code = File.read(file)
code = code.gsub(/require '(\S+)_pb'/, "require_relative '\\1_pb'")
code = code.gsub(/require '(\S+)_pb'/) do |str|
match = Regexp.last_match[1]

if File.exist?("#{output_dir}/#{match}_pb.rb")
"require_relative '#{match}_pb'"
else
str
end
end
File.write(file, code)
end
end
Expand Down
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 68dbe87

Please sign in to comment.