| 123456789101112131415161718192021222324252627282930313233343536 | // +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	}	streamType := strings.ToLower(typeConfig.StreamType)	if streamType == "tcp" {		jsonTCPConfig := new(JsonTCPConfig)		if err := json.Unmarshal(data, jsonTCPConfig); err != nil {			return err		}		this.TCPConfig = &TCPConfig{			ConnectionReuse: jsonTCPConfig.ConnectionReuse,		}	}	return nil}
 |