zeloxy 0.5.2

A library for creating lightweight, async, and lag-free proxy connections.
Documentation
use tokio::io::{AsyncWrite, AsyncWriteExt};

/// Отдельная рука для записи данных в поток
pub struct ProxyWriter {
  write_stream: Box<dyn AsyncWrite + Unpin + Send>,
}

impl ProxyWriter {
  /// Функция создания нового `ProxyWriter` из потока записи
  pub fn new<W>(write_stream: W) -> Self
  where
    W: AsyncWrite + Unpin + Send + 'static,
  {
    Self {
      write_stream: Box::new(write_stream),
    }
  }

  /// Метод выключения потока записи
  pub async fn shutdown(&mut self) -> std::io::Result<()> {
    self.write_stream.shutdown().await
  }

  /// Метод записи буффера в поток
  pub async fn write(&mut self, buffer: &[u8]) -> std::io::Result<()> {
    self.write_stream.write_all(buffer).await
  }
}