code: func StreamServerInterceptor() grpc.StreamServerInterceptor {
  	return func(srv interface{}, stream grpc.ServerStream, info *grpc.StreamServerInfo, handler grpc.StreamHandler) error {
  		wrapper := &recvWrapper{stream}
  		return handler(srv, wrapper)
  	}
  }
docs: // StreamServerInterceptor returns a new streaming server interceptor that validates incoming messages.
  //
  // The stage at which invalid messages will be rejected with `InvalidArgument` varies based on the
  // type of the RPC. For `ServerStream` (1:m) requests, it will happen before reaching any userspace
  // handlers. For `ClientStream` (n:1) or `BidiStream` (n:m) RPCs, the messages will be rejected on
  // calls to `stream.Recv()`.