| 1234567891011121314151617181920212223242526272829303132333435363738 | // +build jsonpackage transportimport (	"encoding/json"	"strings")func (this *Config) UnmarshalJSON(data []byte) error {	type TypeConfig struct {		StreamType string          `json:"streamType"`		Settings   json.RawMessage `json:"settings"`	}	type JsonTCPConfig struct {		ConnectionReuse bool `json:"connectionReuse"`	}	typeConfig := new(TypeConfig)	if err := json.Unmarshal(data, typeConfig); err != nil {		return err	}	this.StreamType = StreamTypeTCP	streamType := strings.ToLower(typeConfig.StreamType)	if streamType == "tcp" {		jsonTCPConfig := new(JsonTCPConfig)		if err := json.Unmarshal(typeConfig.Settings, jsonTCPConfig); err != nil {			return err		}		this.TCPConfig = &TCPConfig{			ConnectionReuse: jsonTCPConfig.ConnectionReuse,		}	}	return nil}
 |