node/control: Please the borrow checker

This only surfaced after building again on Windows.
This commit is contained in:
Lorenz Leutgeb 2025-08-24 15:12:11 +02:00
parent fca96e697f
commit a4d83ec8d2
1 changed files with 12 additions and 4 deletions

View File

@ -98,16 +98,24 @@ where
/// ///
/// As of winpipe 0.1.1, [`WinStream::try_clone`] is actually infallible. /// As of winpipe 0.1.1, [`WinStream::try_clone`] is actually infallible.
#[cfg(windows)] #[cfg(windows)]
fn command<E, H>(mut stream: Stream, handle: H) -> Result<(), (CommandError, Stream)> fn command<E, H>(stream: Stream, handle: H) -> Result<(), (CommandError, Stream)>
where where
H: Handle<Error = runtime::HandleError> + 'static, H: Handle<Error = runtime::HandleError> + 'static,
H::Sessions: serde::Serialize, H::Sessions: serde::Serialize,
CommandResult<E>: From<H::Event>, CommandResult<E>: From<H::Event>,
E: serde::Serialize, E: serde::Serialize,
{ {
let mut clone = stream.try_clone().map_err(|e| (e.into(), stream))?; let mut reader = match stream.try_clone() {
let reader = BufReader::new(&mut clone); Ok(reader) => reader,
let writer = LineWriter::new(&mut stream); Err(err) => return Err((err.into(), stream)),
};
let reader = BufReader::new(&mut reader);
let mut writer = match stream.try_clone() {
Ok(writer) => writer,
Err(err) => return Err((err.into(), stream)),
};
let writer = LineWriter::new(&mut writer);
command_internal(reader, writer, handle).map_err(|e| (e, stream)) command_internal(reader, writer, handle).map_err(|e| (e, stream))
} }