package adapter import ( "context" "net" E "github.com/sagernet/sing/common/exceptions" M "github.com/sagernet/sing/common/metadata" N "github.com/sagernet/sing/common/network" ) type V2RayServerTransport interface { Network() []string Serve(listener net.Listener) error ServePacket(listener net.PacketConn) error Close() error } type V2RayServerTransportHandler interface { N.TCPConnectionHandler E.Handler FallbackConnection(ctx context.Context, conn net.Conn, metadata M.Metadata) error } type V2RayClientTransport interface { DialContext(ctx context.Context) (net.Conn, error) }