| 1234567891011121314151617181920212223242526272829303132 | package internetimport "v2ray.com/core/common"type PacketHeader interface {	Size() int	Write([]byte) int}type PacketHeaderFactory interface {	Create(interface{}) PacketHeader}var (	headerCache = make(map[string]PacketHeaderFactory))func RegisterPacketHeader(name string, factory PacketHeaderFactory) error {	if _, found := headerCache[name]; found {		return common.ErrDuplicatedName	}	headerCache[name] = factory	return nil}func CreatePacketHeader(name string, config interface{}) (PacketHeader, error) {	factory, found := headerCache[name]	if !found {		return nil, common.ErrObjectNotFound	}	return factory.Create(config), nil}
 |