Download codex-rs/code-mode/src/remote_session/connection/reader.rs from SaylorTwift/codex: direct link, hf CLI and curl.
- Browser
- Download file 966 Bytes
-
https://huggingface.co/SaylorTwift/codex/resolve/main/codex-rs/code-mode/src/remote_session/connection/reader.rs
- Command line
-
hf download hf://SaylorTwift/codex/codex-rs/code-mode/src/remote_session/connection/reader.rs
-
curl -L -o reader.rs https://huggingface.co/SaylorTwift/codex/resolve/main/codex-rs/code-mode/src/remote_session/connection/reader.rs
966 Bytes
| use codex_code_mode_protocol::host::FramedReader; | |
| use tokio::process::ChildStdout; | |
| use tokio::sync::mpsc; | |
| use tokio_util::sync::CancellationToken; | |
| use super::driver::DriverEvent; | |
| pub(super) async fn drive_reader( | |
| mut reader: FramedReader<ChildStdout>, | |
| events: mpsc::Sender<DriverEvent>, | |
| cancellation: CancellationToken, | |
| ) -> Result<(), String> { | |
| loop { | |
| let message = tokio::select! { | |
| _ = cancellation.cancelled() => return Ok(()), | |
| result = reader.read() => result, | |
| }; | |
| let message = match message { | |
| Ok(Some(message)) => message, | |
| Ok(None) => return Err("code-mode host closed its stdout".to_string()), | |
| Err(err) => return Err(format!("failed to read code-mode host message: {err}")), | |
| }; | |
| events | |
| .send(DriverEvent::HostMessage(message)) | |
| .await | |
| .map_err(|_| "code-mode connection driver closed".to_string())?; | |
| } | |
| } | |