func BuildTypeDecoder(recognizedTypes []interface{}) TypeDecoder {
	typeMappings := make(map[string]reflect.Type)
	for _, recognizedType := range recognizedTypes {
		typeMappings[reflect.TypeOf(recognizedType).Name()] = reflect.TypeOf(recognizedType)
	}

	return &TypeDecoderImpl{typeMappings: typeMappings}
}
func BuildTypeDecoder(recognizedTypes []interface{}) TypeDecoder {
	typeMappings := make(map[string]reflect.Type)
	for _, recognizedType := range recognizedTypes {
		typeMappings[reflect.TypeOf(recognizedType).Name()] = reflect.TypeOf(recognizedType)
	}

	return &TypeDecoderImpl{typeMappings: typeMappings}
}
// BuildTypeDecoder takes a list of interfaces and stores them internally as a
// list of typeMappings in the format below.
// "MyMessage": TypeOf(ecstcs.MyMessage)