Add Camino schema interfaces

This commit is contained in:
Timothy J. Aveni
2026-07-12 16:05:05 -07:00
parent 7c91982f8f
commit 79d551131e
4 changed files with 255 additions and 18 deletions
+13
View File
@@ -15,6 +15,8 @@ extend google.protobuf.MessageOptions {
ClassOptions class = 51010;
repeated MethodOptions method = 51011;
repeated MigrationOptions migration = 51012;
InterfaceOptions interface = 51013;
repeated ImplementsOptions implements = 51014;
}
extend google.protobuf.FieldOptions {
@@ -22,6 +24,7 @@ extend google.protobuf.FieldOptions {
EdgeOptions edge = 51021;
FieldStorage field_storage = 51022;
FieldOps field_ops = 51023;
InterfaceFieldContract interface_field = 51024;
}
extend google.protobuf.MethodOptions {
@@ -33,6 +36,16 @@ message ClassOptions {
SymbolRef id = 2;
}
message InterfaceOptions {
uint32 version = 1;
SymbolRef id = 2;
}
message ImplementsOptions {
SymbolRef interface = 1;
repeated TypeBinding type_binding = 2;
}
message EdgeOptions {
SymbolRef id = 1;
SymbolRef target = 2;
+29
View File
@@ -79,6 +79,7 @@ message ClassSchema {
string source_file = 7;
string proto_message = 8;
repeated OperationServiceSchema operation_services = 9;
repeated InterfaceImplementationSchema implements = 10;
}
message FieldSchema {
@@ -90,6 +91,7 @@ message FieldSchema {
bool optional = 6;
FieldStorage storage = 7;
FieldOps ops = 8;
InterfaceFieldContract interface_contract = 9;
}
message FieldStorage {
@@ -103,6 +105,33 @@ message TypeRef {
SymbolRef symbol = 2;
}
message TypeBinding {
string name = 1;
TypeRef type = 2;
}
message InterfaceFieldContract {
bool required = 1;
bool readable = 2;
bool writable = 3;
bool watchable = 4;
string type_param = 5;
TypeRef type = 6;
}
message InterfaceImplementationSchema {
SymbolRef interface = 1;
repeated TypeBinding type_bindings = 2;
}
message InterfaceSchema {
SymbolRef id = 1;
uint32 version = 2;
repeated FieldSchema fields = 3;
string source_file = 4;
string proto_message = 5;
}
enum FieldImplementation {
FIELD_IMPLEMENTATION_UNSPECIFIED = 0;
SERVICE = 1;