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)
- }
|