vortex-io 0.89.0

Core async and blocking IO traits and implementations, used by IPC and file format
Documentation
// SPDX-License-Identifier: Apache-2.0
// SPDX-FileCopyrightText: Copyright the Vortex contributors

use crate::IoBuf;
use crate::VortexWrite;
use crate::compat::Compat;

/// Compatibility adapter for `VortexWrite` implementations that are based on Tokio.
#[deny(clippy::missing_trait_methods)]
impl<W: VortexWrite> VortexWrite for Compat<W> {
    fn write_all<B: IoBuf>(
        &mut self,
        buffer: B,
    ) -> impl Future<Output = std::io::Result<B>> + Send {
        Compat::new(self.inner_mut().write_all(buffer))
    }

    fn flush(&mut self) -> impl Future<Output = std::io::Result<()>> + Send {
        Compat::new(self.inner_mut().flush())
    }

    fn shutdown(&mut self) -> impl Future<Output = std::io::Result<()>> + Send {
        Compat::new(self.inner_mut().shutdown())
    }
}