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
+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;