code: func StreamServerInterceptor(opts ...Option) grpc.StreamServerInterceptor {
  	o := evaluateOptions(opts)
  	return func(srv interface{}, stream grpc.ServerStream, info *grpc.StreamServerInfo, handler grpc.StreamHandler) error {
  		newCtx := newTagsForCtx(stream.Context())
  		if o.requestFieldsFunc == nil {
  			// Short-circuit, don't do the expensive bit of allocating a wrappedStream.
  			wrappedStream := grpc_middleware.WrapServerStream(stream)
  			wrappedStream.WrappedContext = newCtx
  			return handler(srv, wrappedStream)
  		}
  		wrapped := &wrappedStream{stream, info, o, newCtx, true}
  		err := handler(srv, wrapped)
  		return err
  	}
  }
docs: // StreamServerInterceptor returns a new streaming server interceptor that sets the values for request tags.