use super::super::handle::BodyHandle;
use std::io::Write;
#[derive(Debug, Eq, Hash, PartialEq)]
#[repr(transparent)]
pub struct StreamingBodyHandle {
handle: BodyHandle,
}
impl StreamingBodyHandle {
pub fn from_body_handle(body_handle: BodyHandle) -> Self {
Self {
handle: body_handle,
}
}
pub unsafe fn as_u32(&self) -> u32 {
self.handle.as_u32()
}
#[doc = include_str!("../../../../docs/snippets/body-append-constant-time.md")]
pub fn append(&mut self, other: BodyHandle) {
self.handle.append(other)
}
pub fn write_bytes(&mut self, bytes: &[u8]) -> usize {
self.handle.write_bytes(bytes)
}
pub fn write_str(&mut self, string: &str) -> usize {
self.write_bytes(string.as_bytes())
}
}
impl Write for StreamingBodyHandle {
fn write(&mut self, buf: &[u8]) -> std::io::Result<usize> {
Ok(self.write_bytes(buf))
}
fn flush(&mut self) -> std::io::Result<()> {
Ok(())
}
}