You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package schema
import ( "github.com/seaweedfs/seaweedfs/weed/pb/schema_pb" )
type Schema struct { RecordType *schema_pb.RecordType fieldMap map[string]*schema_pb.Field }
func NewSchema(recordType *schema_pb.RecordType) (*Schema, error) { fieldMap := make(map[string]*schema_pb.Field) for _, field := range recordType.Fields { fieldMap[field.Name] = field } return &Schema{ RecordType: recordType, fieldMap: fieldMap, }, nil }
func (s *Schema) GetField(name string) (*schema_pb.Field, bool) { field, ok := s.fieldMap[name] return field, ok }
func TypeToString(t *schema_pb.Type) string { switch t.Kind.(type) { case *schema_pb.Type_ScalarType: switch t.GetScalarType() { case schema_pb.ScalarType_BOOL: return "bool" case schema_pb.ScalarType_INT32: return "int32" case schema_pb.ScalarType_INT64: return "int64" case schema_pb.ScalarType_FLOAT: return "float" case schema_pb.ScalarType_DOUBLE: return "double" case schema_pb.ScalarType_BYTES: return "bytes" case schema_pb.ScalarType_STRING: return "string" } case *schema_pb.Type_ListType: return "list" case *schema_pb.Type_RecordType: return "record" } return "unknown" }
|