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.
#[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
H: Handle<Error = runtime::HandleError> + 'static,
H::Sessions: serde::Serialize,
CommandResult<E>: From<H::Event>,
E: serde::Serialize,
{
let mut clone = stream.try_clone().map_err(|e| (e.into(), stream))?;
let reader = BufReader::new(&mut clone);
let writer = LineWriter::new(&mut stream);
let mut reader = match stream.try_clone() {
Ok(reader) => reader,
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))
}