| 123456789101112131415161718192021222324 | 
							- package experimental
 
- import (
 
- 	"os"
 
- 	"github.com/sagernet/sing-box/adapter"
 
- 	"github.com/sagernet/sing-box/log"
 
- 	"github.com/sagernet/sing-box/option"
 
- )
 
- type ClashServerConstructor = func(router adapter.Router, logFactory log.ObservableFactory, options option.ClashAPIOptions) (adapter.ClashServer, error)
 
- var clashServerConstructor ClashServerConstructor
 
- func RegisterClashServerConstructor(constructor ClashServerConstructor) {
 
- 	clashServerConstructor = constructor
 
- }
 
- func NewClashServer(router adapter.Router, logFactory log.ObservableFactory, options option.ClashAPIOptions) (adapter.ClashServer, error) {
 
- 	if clashServerConstructor == nil {
 
- 		return nil, os.ErrInvalid
 
- 	}
 
- 	return clashServerConstructor(router, logFactory, options)
 
- }
 
 
  |