pub async fn server_reflection_info(
            &mut self,
            request: impl tonic::IntoStreamingRequest<
                Message = super::ServerReflectionRequest,
            >,
        ) -> std::result::Result<
            tonic::Response<tonic::codec::Streaming<super::ServerReflectionResponse>>,
            tonic::Status,
        > {
            self.inner
                .ready()
                .await
                .map_err(|e| {
                    tonic::Status::unknown(
                        format!("Service was not ready: {}", e.into()),
                    )
                })?;
            let codec = tonic::codec::ProstCodec::default();
            let path = http::uri::PathAndQuery::from_static(
                "/grpc.reflection.v1alpha.ServerReflection/ServerReflectionInfo",
            );
            let mut req = request.into_streaming_request();
            req.extensions_mut()
                .insert(
                    GrpcMethod::new(
                        "grpc.reflection.v1alpha.ServerReflection",
                        "ServerReflectionInfo",
                    ),
                );
            self.inner.streaming(req, path, codec).await
        }
The reflection service is structured as a bidirectional stream, ensuring
all related requests go to a single server.
tonic-reflection/src/generated/grpc_reflection_v1alpha.rs