Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- async fn connect_to_server(
- &self,
- request: Request<Streaming<Bytes>>,
- ) -> Result<Response<Self::ConnectToServerStream>, Status> {
- let mut stream = request.into_inner();
- let handler = self.handler.clone();
- let output = async_stream::try_stream! {
- loop {
- match stream.try_next().await {
- Ok(payload) => {
- match payload {
- Some(bytes) => {
- let buffer = bytes.bytes;
- let mut guard = handler.try_lock().unwrap();
- let result = guard.handle_request(buffer);
- yield Bytes {bytes: result}
- },
- None => {
- println!("Done");
- break
- }
- }
- },
- Err(err) => {
- eprintln!("Error: {:?}", err);
- break
- }
- }
- }
- };
- Ok(Response::new(Box::pin(output) as Self::ConnectToServerStream))
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement