chrislu
8 months ago
4 changed files with 659 additions and 0 deletions
-
98weed/mq/schema/schema_test.go
-
1weed/pb/Makefile
-
40weed/pb/schema.proto
-
520weed/pb/schema_pb/schema.pb.go
@ -0,0 +1,98 @@ |
|||
package schema |
|||
|
|||
import ( |
|||
"encoding/json" |
|||
"github.com/golang/protobuf/proto" |
|||
. "github.com/seaweedfs/seaweedfs/weed/pb/schema_pb" |
|||
"github.com/stretchr/testify/assert" |
|||
"testing" |
|||
) |
|||
|
|||
func TestEnumScalarType(t *testing.T) { |
|||
tests := []struct { |
|||
name string |
|||
enum ScalarType |
|||
expected int32 |
|||
}{ |
|||
{"Boolean", ScalarType_BOOLEAN, 0}, |
|||
{"Integer", ScalarType_INTEGER, 1}, |
|||
{"Long", ScalarType_LONG, 3}, |
|||
{"Float", ScalarType_FLOAT, 4}, |
|||
{"Double", ScalarType_DOUBLE, 5}, |
|||
{"Bytes", ScalarType_BYTES, 6}, |
|||
{"String", ScalarType_STRING, 7}, |
|||
} |
|||
|
|||
for _, tt := range tests { |
|||
t.Run(tt.name, func(t *testing.T) { |
|||
assert.Equal(t, tt.expected, int32(tt.enum)) |
|||
}) |
|||
} |
|||
} |
|||
|
|||
func TestMapType(t *testing.T) { |
|||
mt := &MapType{ |
|||
Key: "key", |
|||
Value: &Type{Kind: &Type_ScalarType{ScalarType: ScalarType_BOOLEAN}}, |
|||
} |
|||
assert.NotNil(t, mt) |
|||
} |
|||
|
|||
func TestField(t *testing.T) { |
|||
field := &Field{ |
|||
Name: "field_name", |
|||
Type: &Type{Kind: &Type_ScalarType{ScalarType: ScalarType_INTEGER}}, |
|||
Index: 1, |
|||
IsOptional: true, |
|||
IsRepeated: false, |
|||
} |
|||
assert.NotNil(t, field) |
|||
} |
|||
|
|||
func TestRecordType(t *testing.T) { |
|||
subRecord := &RecordType{ |
|||
Fields: []*Field{ |
|||
{ |
|||
Name: "field_1", |
|||
Type: &Type{Kind: &Type_ScalarType{ScalarType: ScalarType_INTEGER}}, |
|||
Index: 1, |
|||
IsOptional: true, |
|||
IsRepeated: false, |
|||
}, |
|||
{ |
|||
Name: "field_2", |
|||
Type: &Type{Kind: &Type_ScalarType{ScalarType: ScalarType_STRING}}, |
|||
Index: 2, |
|||
IsOptional: true, |
|||
IsRepeated: false, |
|||
}, |
|||
}, |
|||
} |
|||
record := &RecordType{ |
|||
Fields: []*Field{ |
|||
{ |
|||
Name: "field_key", |
|||
Type: &Type{Kind: &Type_ScalarType{ScalarType: ScalarType_INTEGER}}, |
|||
Index: 1, |
|||
IsOptional: true, |
|||
IsRepeated: false, |
|||
}, |
|||
{ |
|||
Name: "field_record", |
|||
Type: &Type{Kind: &Type_RecordType{RecordType: subRecord}}, |
|||
Index: 2, |
|||
IsOptional: true, |
|||
IsRepeated: false, |
|||
}, |
|||
}, |
|||
} |
|||
|
|||
// serialize record to protobuf text marshalling
|
|||
text := proto.MarshalTextString(record) |
|||
println(text) |
|||
|
|||
bytes, _ := json.Marshal(record) |
|||
println(string(bytes)) |
|||
|
|||
assert.NotNil(t, record) |
|||
} |
@ -0,0 +1,40 @@ |
|||
syntax = "proto3"; |
|||
|
|||
package schema_pb; |
|||
|
|||
option go_package = "github.com/seaweedfs/seaweedfs/weed/pb/schema_pb"; |
|||
|
|||
message RecordType { |
|||
repeated Field fields = 2; |
|||
} |
|||
|
|||
message Field { |
|||
string name = 1; |
|||
Type type = 2; |
|||
int32 index = 3; |
|||
bool is_optional = 4; |
|||
bool is_repeated = 5; |
|||
} |
|||
|
|||
message Type { |
|||
oneof kind { |
|||
ScalarType scalar_type = 1; |
|||
RecordType record_type = 2; |
|||
MapType map_type = 3; |
|||
} |
|||
} |
|||
|
|||
enum ScalarType { |
|||
BOOLEAN = 0; |
|||
INTEGER = 1; |
|||
LONG = 3; |
|||
FLOAT = 4; |
|||
DOUBLE = 5; |
|||
BYTES = 6; |
|||
STRING = 7; |
|||
} |
|||
|
|||
message MapType { |
|||
// key is always string |
|||
Type value = 1; |
|||
} |
@ -0,0 +1,520 @@ |
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|||
// versions:
|
|||
// protoc-gen-go v1.32.0
|
|||
// protoc v4.25.3
|
|||
// source: schema.proto
|
|||
|
|||
package schema_pb |
|||
|
|||
import ( |
|||
protoreflect "google.golang.org/protobuf/reflect/protoreflect" |
|||
protoimpl "google.golang.org/protobuf/runtime/protoimpl" |
|||
reflect "reflect" |
|||
sync "sync" |
|||
) |
|||
|
|||
const ( |
|||
// Verify that this generated code is sufficiently up-to-date.
|
|||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) |
|||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
|||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) |
|||
) |
|||
|
|||
type ScalarType int32 |
|||
|
|||
const ( |
|||
ScalarType_BOOLEAN ScalarType = 0 |
|||
ScalarType_INTEGER ScalarType = 1 |
|||
ScalarType_LONG ScalarType = 3 |
|||
ScalarType_FLOAT ScalarType = 4 |
|||
ScalarType_DOUBLE ScalarType = 5 |
|||
ScalarType_BYTES ScalarType = 6 |
|||
ScalarType_STRING ScalarType = 7 |
|||
) |
|||
|
|||
// Enum value maps for ScalarType.
|
|||
var ( |
|||
ScalarType_name = map[int32]string{ |
|||
0: "BOOLEAN", |
|||
1: "INTEGER", |
|||
3: "LONG", |
|||
4: "FLOAT", |
|||
5: "DOUBLE", |
|||
6: "BYTES", |
|||
7: "STRING", |
|||
} |
|||
ScalarType_value = map[string]int32{ |
|||
"BOOLEAN": 0, |
|||
"INTEGER": 1, |
|||
"LONG": 3, |
|||
"FLOAT": 4, |
|||
"DOUBLE": 5, |
|||
"BYTES": 6, |
|||
"STRING": 7, |
|||
} |
|||
) |
|||
|
|||
func (x ScalarType) Enum() *ScalarType { |
|||
p := new(ScalarType) |
|||
*p = x |
|||
return p |
|||
} |
|||
|
|||
func (x ScalarType) String() string { |
|||
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
|||
} |
|||
|
|||
func (ScalarType) Descriptor() protoreflect.EnumDescriptor { |
|||
return file_schema_proto_enumTypes[0].Descriptor() |
|||
} |
|||
|
|||
func (ScalarType) Type() protoreflect.EnumType { |
|||
return &file_schema_proto_enumTypes[0] |
|||
} |
|||
|
|||
func (x ScalarType) Number() protoreflect.EnumNumber { |
|||
return protoreflect.EnumNumber(x) |
|||
} |
|||
|
|||
// Deprecated: Use ScalarType.Descriptor instead.
|
|||
func (ScalarType) EnumDescriptor() ([]byte, []int) { |
|||
return file_schema_proto_rawDescGZIP(), []int{0} |
|||
} |
|||
|
|||
type RecordType struct { |
|||
state protoimpl.MessageState |
|||
sizeCache protoimpl.SizeCache |
|||
unknownFields protoimpl.UnknownFields |
|||
|
|||
Fields []*Field `protobuf:"bytes,2,rep,name=fields,proto3" json:"fields,omitempty"` |
|||
} |
|||
|
|||
func (x *RecordType) Reset() { |
|||
*x = RecordType{} |
|||
if protoimpl.UnsafeEnabled { |
|||
mi := &file_schema_proto_msgTypes[0] |
|||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
|||
ms.StoreMessageInfo(mi) |
|||
} |
|||
} |
|||
|
|||
func (x *RecordType) String() string { |
|||
return protoimpl.X.MessageStringOf(x) |
|||
} |
|||
|
|||
func (*RecordType) ProtoMessage() {} |
|||
|
|||
func (x *RecordType) ProtoReflect() protoreflect.Message { |
|||
mi := &file_schema_proto_msgTypes[0] |
|||
if protoimpl.UnsafeEnabled && x != nil { |
|||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
|||
if ms.LoadMessageInfo() == nil { |
|||
ms.StoreMessageInfo(mi) |
|||
} |
|||
return ms |
|||
} |
|||
return mi.MessageOf(x) |
|||
} |
|||
|
|||
// Deprecated: Use RecordType.ProtoReflect.Descriptor instead.
|
|||
func (*RecordType) Descriptor() ([]byte, []int) { |
|||
return file_schema_proto_rawDescGZIP(), []int{0} |
|||
} |
|||
|
|||
func (x *RecordType) GetFields() []*Field { |
|||
if x != nil { |
|||
return x.Fields |
|||
} |
|||
return nil |
|||
} |
|||
|
|||
type Field struct { |
|||
state protoimpl.MessageState |
|||
sizeCache protoimpl.SizeCache |
|||
unknownFields protoimpl.UnknownFields |
|||
|
|||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
|||
Type *Type `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` |
|||
Index int32 `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"` |
|||
IsOptional bool `protobuf:"varint,4,opt,name=is_optional,json=isOptional,proto3" json:"is_optional,omitempty"` |
|||
IsRepeated bool `protobuf:"varint,5,opt,name=is_repeated,json=isRepeated,proto3" json:"is_repeated,omitempty"` |
|||
} |
|||
|
|||
func (x *Field) Reset() { |
|||
*x = Field{} |
|||
if protoimpl.UnsafeEnabled { |
|||
mi := &file_schema_proto_msgTypes[1] |
|||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
|||
ms.StoreMessageInfo(mi) |
|||
} |
|||
} |
|||
|
|||
func (x *Field) String() string { |
|||
return protoimpl.X.MessageStringOf(x) |
|||
} |
|||
|
|||
func (*Field) ProtoMessage() {} |
|||
|
|||
func (x *Field) ProtoReflect() protoreflect.Message { |
|||
mi := &file_schema_proto_msgTypes[1] |
|||
if protoimpl.UnsafeEnabled && x != nil { |
|||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
|||
if ms.LoadMessageInfo() == nil { |
|||
ms.StoreMessageInfo(mi) |
|||
} |
|||
return ms |
|||
} |
|||
return mi.MessageOf(x) |
|||
} |
|||
|
|||
// Deprecated: Use Field.ProtoReflect.Descriptor instead.
|
|||
func (*Field) Descriptor() ([]byte, []int) { |
|||
return file_schema_proto_rawDescGZIP(), []int{1} |
|||
} |
|||
|
|||
func (x *Field) GetName() string { |
|||
if x != nil { |
|||
return x.Name |
|||
} |
|||
return "" |
|||
} |
|||
|
|||
func (x *Field) GetType() *Type { |
|||
if x != nil { |
|||
return x.Type |
|||
} |
|||
return nil |
|||
} |
|||
|
|||
func (x *Field) GetIndex() int32 { |
|||
if x != nil { |
|||
return x.Index |
|||
} |
|||
return 0 |
|||
} |
|||
|
|||
func (x *Field) GetIsOptional() bool { |
|||
if x != nil { |
|||
return x.IsOptional |
|||
} |
|||
return false |
|||
} |
|||
|
|||
func (x *Field) GetIsRepeated() bool { |
|||
if x != nil { |
|||
return x.IsRepeated |
|||
} |
|||
return false |
|||
} |
|||
|
|||
type Type struct { |
|||
state protoimpl.MessageState |
|||
sizeCache protoimpl.SizeCache |
|||
unknownFields protoimpl.UnknownFields |
|||
|
|||
// Types that are assignable to Kind:
|
|||
//
|
|||
// *Type_ScalarType
|
|||
// *Type_RecordType
|
|||
// *Type_MapType
|
|||
Kind isType_Kind `protobuf_oneof:"kind"` |
|||
} |
|||
|
|||
func (x *Type) Reset() { |
|||
*x = Type{} |
|||
if protoimpl.UnsafeEnabled { |
|||
mi := &file_schema_proto_msgTypes[2] |
|||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
|||
ms.StoreMessageInfo(mi) |
|||
} |
|||
} |
|||
|
|||
func (x *Type) String() string { |
|||
return protoimpl.X.MessageStringOf(x) |
|||
} |
|||
|
|||
func (*Type) ProtoMessage() {} |
|||
|
|||
func (x *Type) ProtoReflect() protoreflect.Message { |
|||
mi := &file_schema_proto_msgTypes[2] |
|||
if protoimpl.UnsafeEnabled && x != nil { |
|||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
|||
if ms.LoadMessageInfo() == nil { |
|||
ms.StoreMessageInfo(mi) |
|||
} |
|||
return ms |
|||
} |
|||
return mi.MessageOf(x) |
|||
} |
|||
|
|||
// Deprecated: Use Type.ProtoReflect.Descriptor instead.
|
|||
func (*Type) Descriptor() ([]byte, []int) { |
|||
return file_schema_proto_rawDescGZIP(), []int{2} |
|||
} |
|||
|
|||
func (m *Type) GetKind() isType_Kind { |
|||
if m != nil { |
|||
return m.Kind |
|||
} |
|||
return nil |
|||
} |
|||
|
|||
func (x *Type) GetScalarType() ScalarType { |
|||
if x, ok := x.GetKind().(*Type_ScalarType); ok { |
|||
return x.ScalarType |
|||
} |
|||
return ScalarType_BOOLEAN |
|||
} |
|||
|
|||
func (x *Type) GetRecordType() *RecordType { |
|||
if x, ok := x.GetKind().(*Type_RecordType); ok { |
|||
return x.RecordType |
|||
} |
|||
return nil |
|||
} |
|||
|
|||
func (x *Type) GetMapType() *MapType { |
|||
if x, ok := x.GetKind().(*Type_MapType); ok { |
|||
return x.MapType |
|||
} |
|||
return nil |
|||
} |
|||
|
|||
type isType_Kind interface { |
|||
isType_Kind() |
|||
} |
|||
|
|||
type Type_ScalarType struct { |
|||
ScalarType ScalarType `protobuf:"varint,1,opt,name=scalar_type,json=scalarType,proto3,enum=schema_pb.ScalarType,oneof"` |
|||
} |
|||
|
|||
type Type_RecordType struct { |
|||
RecordType *RecordType `protobuf:"bytes,2,opt,name=record_type,json=recordType,proto3,oneof"` |
|||
} |
|||
|
|||
type Type_MapType struct { |
|||
MapType *MapType `protobuf:"bytes,3,opt,name=map_type,json=mapType,proto3,oneof"` |
|||
} |
|||
|
|||
func (*Type_ScalarType) isType_Kind() {} |
|||
|
|||
func (*Type_RecordType) isType_Kind() {} |
|||
|
|||
func (*Type_MapType) isType_Kind() {} |
|||
|
|||
type MapType struct { |
|||
state protoimpl.MessageState |
|||
sizeCache protoimpl.SizeCache |
|||
unknownFields protoimpl.UnknownFields |
|||
|
|||
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` |
|||
Value *Type `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` |
|||
} |
|||
|
|||
func (x *MapType) Reset() { |
|||
*x = MapType{} |
|||
if protoimpl.UnsafeEnabled { |
|||
mi := &file_schema_proto_msgTypes[3] |
|||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
|||
ms.StoreMessageInfo(mi) |
|||
} |
|||
} |
|||
|
|||
func (x *MapType) String() string { |
|||
return protoimpl.X.MessageStringOf(x) |
|||
} |
|||
|
|||
func (*MapType) ProtoMessage() {} |
|||
|
|||
func (x *MapType) ProtoReflect() protoreflect.Message { |
|||
mi := &file_schema_proto_msgTypes[3] |
|||
if protoimpl.UnsafeEnabled && x != nil { |
|||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
|||
if ms.LoadMessageInfo() == nil { |
|||
ms.StoreMessageInfo(mi) |
|||
} |
|||
return ms |
|||
} |
|||
return mi.MessageOf(x) |
|||
} |
|||
|
|||
// Deprecated: Use MapType.ProtoReflect.Descriptor instead.
|
|||
func (*MapType) Descriptor() ([]byte, []int) { |
|||
return file_schema_proto_rawDescGZIP(), []int{3} |
|||
} |
|||
|
|||
func (x *MapType) GetKey() string { |
|||
if x != nil { |
|||
return x.Key |
|||
} |
|||
return "" |
|||
} |
|||
|
|||
func (x *MapType) GetValue() *Type { |
|||
if x != nil { |
|||
return x.Value |
|||
} |
|||
return nil |
|||
} |
|||
|
|||
var File_schema_proto protoreflect.FileDescriptor |
|||
|
|||
var file_schema_proto_rawDesc = []byte{ |
|||
0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, |
|||
0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x70, 0x62, 0x22, 0x36, 0x0a, 0x0a, 0x52, 0x65, 0x63, |
|||
0x6f, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, |
|||
0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, |
|||
0x5f, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, |
|||
0x73, 0x22, 0x98, 0x01, 0x0a, 0x05, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, |
|||
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, |
|||
0x23, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, |
|||
0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, |
|||
0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, |
|||
0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, |
|||
0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, |
|||
0x0a, 0x69, 0x73, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x69, |
|||
0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, |
|||
0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x22, 0xb3, 0x01, 0x0a, |
|||
0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x73, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x5f, |
|||
0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x73, 0x63, 0x68, |
|||
0x65, 0x6d, 0x61, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x54, 0x79, 0x70, |
|||
0x65, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, |
|||
0x38, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, |
|||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x70, 0x62, |
|||
0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x72, |
|||
0x65, 0x63, 0x6f, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2f, 0x0a, 0x08, 0x6d, 0x61, 0x70, |
|||
0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x63, |
|||
0x68, 0x65, 0x6d, 0x61, 0x5f, 0x70, 0x62, 0x2e, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x48, |
|||
0x00, 0x52, 0x07, 0x6d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, |
|||
0x6e, 0x64, 0x22, 0x42, 0x0a, 0x07, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, |
|||
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, |
|||
0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, |
|||
0x2e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, |
|||
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2a, 0x5e, 0x0a, 0x0a, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, |
|||
0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4f, 0x4f, 0x4c, 0x45, 0x41, 0x4e, 0x10, |
|||
0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x45, 0x52, 0x10, 0x01, 0x12, 0x08, |
|||
0x0a, 0x04, 0x4c, 0x4f, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x4c, 0x4f, 0x41, |
|||
0x54, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x05, 0x12, |
|||
0x09, 0x0a, 0x05, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, |
|||
0x52, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, |
|||
0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x65, 0x61, 0x77, 0x65, 0x65, 0x64, 0x66, 0x73, 0x2f, 0x73, |
|||
0x65, 0x61, 0x77, 0x65, 0x65, 0x64, 0x66, 0x73, 0x2f, 0x77, 0x65, 0x65, 0x64, 0x2f, 0x70, 0x62, |
|||
0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, |
|||
0x6f, 0x33, |
|||
} |
|||
|
|||
var ( |
|||
file_schema_proto_rawDescOnce sync.Once |
|||
file_schema_proto_rawDescData = file_schema_proto_rawDesc |
|||
) |
|||
|
|||
func file_schema_proto_rawDescGZIP() []byte { |
|||
file_schema_proto_rawDescOnce.Do(func() { |
|||
file_schema_proto_rawDescData = protoimpl.X.CompressGZIP(file_schema_proto_rawDescData) |
|||
}) |
|||
return file_schema_proto_rawDescData |
|||
} |
|||
|
|||
var file_schema_proto_enumTypes = make([]protoimpl.EnumInfo, 1) |
|||
var file_schema_proto_msgTypes = make([]protoimpl.MessageInfo, 4) |
|||
var file_schema_proto_goTypes = []interface{}{ |
|||
(ScalarType)(0), // 0: schema_pb.ScalarType
|
|||
(*RecordType)(nil), // 1: schema_pb.RecordType
|
|||
(*Field)(nil), // 2: schema_pb.Field
|
|||
(*Type)(nil), // 3: schema_pb.Type
|
|||
(*MapType)(nil), // 4: schema_pb.MapType
|
|||
} |
|||
var file_schema_proto_depIdxs = []int32{ |
|||
2, // 0: schema_pb.RecordType.fields:type_name -> schema_pb.Field
|
|||
3, // 1: schema_pb.Field.type:type_name -> schema_pb.Type
|
|||
0, // 2: schema_pb.Type.scalar_type:type_name -> schema_pb.ScalarType
|
|||
1, // 3: schema_pb.Type.record_type:type_name -> schema_pb.RecordType
|
|||
4, // 4: schema_pb.Type.map_type:type_name -> schema_pb.MapType
|
|||
3, // 5: schema_pb.MapType.value:type_name -> schema_pb.Type
|
|||
6, // [6:6] is the sub-list for method output_type
|
|||
6, // [6:6] is the sub-list for method input_type
|
|||
6, // [6:6] is the sub-list for extension type_name
|
|||
6, // [6:6] is the sub-list for extension extendee
|
|||
0, // [0:6] is the sub-list for field type_name
|
|||
} |
|||
|
|||
func init() { file_schema_proto_init() } |
|||
func file_schema_proto_init() { |
|||
if File_schema_proto != nil { |
|||
return |
|||
} |
|||
if !protoimpl.UnsafeEnabled { |
|||
file_schema_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { |
|||
switch v := v.(*RecordType); i { |
|||
case 0: |
|||
return &v.state |
|||
case 1: |
|||
return &v.sizeCache |
|||
case 2: |
|||
return &v.unknownFields |
|||
default: |
|||
return nil |
|||
} |
|||
} |
|||
file_schema_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { |
|||
switch v := v.(*Field); i { |
|||
case 0: |
|||
return &v.state |
|||
case 1: |
|||
return &v.sizeCache |
|||
case 2: |
|||
return &v.unknownFields |
|||
default: |
|||
return nil |
|||
} |
|||
} |
|||
file_schema_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { |
|||
switch v := v.(*Type); i { |
|||
case 0: |
|||
return &v.state |
|||
case 1: |
|||
return &v.sizeCache |
|||
case 2: |
|||
return &v.unknownFields |
|||
default: |
|||
return nil |
|||
} |
|||
} |
|||
file_schema_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { |
|||
switch v := v.(*MapType); i { |
|||
case 0: |
|||
return &v.state |
|||
case 1: |
|||
return &v.sizeCache |
|||
case 2: |
|||
return &v.unknownFields |
|||
default: |
|||
return nil |
|||
} |
|||
} |
|||
} |
|||
file_schema_proto_msgTypes[2].OneofWrappers = []interface{}{ |
|||
(*Type_ScalarType)(nil), |
|||
(*Type_RecordType)(nil), |
|||
(*Type_MapType)(nil), |
|||
} |
|||
type x struct{} |
|||
out := protoimpl.TypeBuilder{ |
|||
File: protoimpl.DescBuilder{ |
|||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), |
|||
RawDescriptor: file_schema_proto_rawDesc, |
|||
NumEnums: 1, |
|||
NumMessages: 4, |
|||
NumExtensions: 0, |
|||
NumServices: 0, |
|||
}, |
|||
GoTypes: file_schema_proto_goTypes, |
|||
DependencyIndexes: file_schema_proto_depIdxs, |
|||
EnumInfos: file_schema_proto_enumTypes, |
|||
MessageInfos: file_schema_proto_msgTypes, |
|||
}.Build() |
|||
File_schema_proto = out.File |
|||
file_schema_proto_rawDesc = nil |
|||
file_schema_proto_goTypes = nil |
|||
file_schema_proto_depIdxs = nil |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue