func (this *TCPConfig) Build() (*loader.TypedSettings, error) {
	config := new(tcp.Config)
	if this.ConnectionReuse != nil {
		config.ConnectionReuse = &tcp.ConnectionReuse{
			Enable: *this.ConnectionReuse,
		}
	}
	if len(this.HeaderConfig) > 0 {
		headerConfig, _, err := tcpHeaderLoader.Load(this.HeaderConfig)
		if err != nil {
			return nil, errors.New("TCP|Config: Failed to parse header config: " + err.Error())
		}
		ts, err := headerConfig.(Buildable).Build()
		if err != nil {
			return nil, errors.New("Failed to get TCP authenticator config: " + err.Error())
		}
		config.HeaderSettings = ts
	}

	return loader.NewTypedSettings(config), nil
}
func (v *TCPConfig) Build() (*serial.TypedMessage, error) {
	config := new(tcp.Config)
	if v.ConnectionReuse != nil {
		config.ConnectionReuse = &tcp.ConnectionReuse{
			Enable: *v.ConnectionReuse,
		}
	}
	if len(v.HeaderConfig) > 0 {
		headerConfig, _, err := tcpHeaderLoader.Load(v.HeaderConfig)
		if err != nil {
			return nil, errors.Base(err).Message("Invalid TCP header config.")
		}
		ts, err := headerConfig.(Buildable).Build()
		if err != nil {
			return nil, errors.Base(err).Message("Invalid TCP header config.")
		}
		config.HeaderSettings = ts
	}

	return serial.ToTypedMessage(config), nil
}