| 123456789101112131415161718192021222324252627282930 | 
							- package option
 
- import (
 
- 	"github.com/sagernet/sing/common/json"
 
- 	"github.com/sagernet/sing/common/uot"
 
- )
 
- type _UDPOverTCPOptions struct {
 
- 	Enabled bool  `json:"enabled,omitempty"`
 
- 	Version uint8 `json:"version,omitempty"`
 
- }
 
- type UDPOverTCPOptions _UDPOverTCPOptions
 
- func (o UDPOverTCPOptions) MarshalJSON() ([]byte, error) {
 
- 	switch o.Version {
 
- 	case 0, uot.Version:
 
- 		return json.Marshal(o.Enabled)
 
- 	default:
 
- 		return json.Marshal(_UDPOverTCPOptions(o))
 
- 	}
 
- }
 
- func (o *UDPOverTCPOptions) UnmarshalJSON(bytes []byte) error {
 
- 	err := json.Unmarshal(bytes, &o.Enabled)
 
- 	if err == nil {
 
- 		return nil
 
- 	}
 
- 	return json.UnmarshalDisallowUnknownFields(bytes, (*_UDPOverTCPOptions)(o))
 
- }
 
 
  |