diff --git a/proto/sagittarius/datatype.proto b/proto/sagittarius/datatype.proto index ecab9ee..5946994 100644 --- a/proto/sagittarius/datatype.proto +++ b/proto/sagittarius/datatype.proto @@ -1,47 +1,12 @@ syntax = "proto3"; -import "translations.proto"; -import "google/protobuf/any.proto"; +import "datatype_definition.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 config = 2; -} - message DataTypeUpdateRequest { - repeated DataType data_types = 1; + repeated shared.DataType data_types = 1; } message DataTypeUpdateResponse { diff --git a/proto/shared/datatype_definition.proto b/proto/shared/datatype_definition.proto new file mode 100644 index 0000000..1ca52f2 --- /dev/null +++ b/proto/shared/datatype_definition.proto @@ -0,0 +1,41 @@ +syntax = "proto3"; +import "google/protobuf/any.proto"; +import "translations.proto"; + +option ruby_package = "Tucana::Shared"; + +package shared; + +message DataType { + enum Variant { + UNKNOWN = 0; + PRIMITIVE = 1; + TYPE = 2; + OBJECT = 3; + DATATYPE = 4; + ARRAY = 5; + GENERIC = 6; + FUNCTION = 7; + } + + 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 config = 2; +}