| 1234567891011121314151617181920212223242526272829303132333435363738394041 | package contextimport (	"context"	"encoding/json")type StreamContext interface {	context.Context	Serialize(any) ([]byte, error)}type streamContext struct {	context.Context}type Serialize func(any) ([]byte, error)var _ StreamContext = (*streamContext)(nil)var (	// serialize 是全局的自定义序列化器	serialize Serialize)func (s *streamContext) Serialize(v any) ([]byte, error) {	if serialize != nil {		return serialize(v)	}	return json.Marshal(v)}func NewStreamContext(ctx context.Context) StreamContext {	return &streamContext{		Context: ctx,	}}func SetSerializer(s Serialize) {	serialize = s}
 |