base.go 771 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package proxy
  2. type Base struct {
  3. Name string `yaml:"name" json:"name"`
  4. Server string `yaml:"server" json:"server"`
  5. Port int `yaml:"port" json:"port"`
  6. Type string `yaml:"type" json:"type"`
  7. UDP bool `yaml:"udp,omitempty" json:"udp,omitempty"`
  8. }
  9. func (b *Base) TypeName() string {
  10. if b.Type == "" {
  11. return "unknown"
  12. }
  13. return b.Type
  14. }
  15. func (b *Base) SetName(name string) {
  16. b.Name = name
  17. }
  18. func (b *Base) SetIP(ip string) {
  19. b.Server = ip
  20. }
  21. func (b *Base) BaseInfo() *Base {
  22. return b
  23. }
  24. func (b *Base) Clone() Base {
  25. c := *b
  26. return c
  27. }
  28. type Proxy interface {
  29. String() string
  30. ToClash() string
  31. ToSurge() string
  32. Link() string
  33. Identifier() string
  34. SetName(name string)
  35. SetIP(ip string)
  36. TypeName() string
  37. BaseInfo() *Base
  38. Clone() Proxy
  39. }