in pulsar/schema.go [92:125]
func NewSchema(schemaType SchemaType, schemaData []byte, properties map[string]string) (schema Schema, err error) {
var schemaDef = string(schemaData)
var s Schema
switch schemaType {
case BYTES:
s = NewBytesSchema(properties)
case STRING:
s = NewStringSchema(properties)
case JSON:
s = NewJSONSchema(schemaDef, properties)
case PROTOBUF:
s = NewProtoSchema(schemaDef, properties)
case AVRO:
s = NewAvroSchema(schemaDef, properties)
case INT8:
s = NewInt8Schema(properties)
case INT16:
s = NewInt16Schema(properties)
case INT32:
s = NewInt32Schema(properties)
case INT64:
s = NewInt64Schema(properties)
case FLOAT:
s = NewFloatSchema(properties)
case DOUBLE:
s = NewDoubleSchema(properties)
case ProtoNative:
s = newProtoNativeSchema(schemaDef, properties)
default:
err = fmt.Errorf("not support schema type of %v", schemaType)
}
schema = s
return
}