Skip to main content

vortex_io/compat/
write.rs

1// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright the Vortex contributors
3
4use crate::IoBuf;
5use crate::VortexWrite;
6use crate::compat::Compat;
7
8/// Compatibility adapter for `VortexWrite` implementations that are based on Tokio.
9#[deny(clippy::missing_trait_methods)]
10impl<W: VortexWrite> VortexWrite for Compat<W> {
11    fn write_all<B: IoBuf>(
12        &mut self,
13        buffer: B,
14    ) -> impl Future<Output = std::io::Result<B>> + Send {
15        Compat::new(self.inner_mut().write_all(buffer))
16    }
17
18    fn flush(&mut self) -> impl Future<Output = std::io::Result<()>> + Send {
19        Compat::new(self.inner_mut().flush())
20    }
21
22    fn shutdown(&mut self) -> impl Future<Output = std::io::Result<()>> + Send {
23        Compat::new(self.inner_mut().shutdown())
24    }
25}