github.com/sagernet/sing@v0.2.6/common/network/direct.go (about) 1 package network 2 3 import ( 4 "github.com/sagernet/sing/common/buf" 5 M "github.com/sagernet/sing/common/metadata" 6 ) 7 8 type ReadWaiter interface { 9 InitializeReadWaiter(newBuffer func() *buf.Buffer) 10 WaitReadBuffer() error 11 } 12 13 type ReadWaitCreator interface { 14 CreateReadWaiter() (ReadWaiter, bool) 15 } 16 17 type PacketReadWaiter interface { 18 InitializeReadWaiter(newBuffer func() *buf.Buffer) 19 WaitReadPacket() (destination M.Socksaddr, err error) 20 } 21 22 type PacketReadWaitCreator interface { 23 CreateReadWaiter() (PacketReadWaiter, bool) 24 }