| 123456789101112131415161718192021222324252627282930313233343536 | package rayimport (	"sync"	"v2ray.com/core/common/buf")type Inspector interface {	Input(*buf.Buffer)}type NoOpInspector struct{}func (NoOpInspector) Input(*buf.Buffer) {}type InspectorChain struct {	sync.RWMutex	chain []Inspector}func (ic *InspectorChain) AddInspector(inspector Inspector) {	ic.Lock()	defer ic.Unlock()	ic.chain = append(ic.chain, inspector)}func (ic *InspectorChain) Input(b *buf.Buffer) {	ic.RLock()	defer ic.RUnlock()	for _, inspector := range ic.chain {		inspector.Input(b)	}}
 |