use crate::collection::Vector;
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub enum WebSocketPayloadOrigin {
Adaptive,
Consistent,
}
impl WebSocketPayloadOrigin {
pub(crate) fn manage_payload<'nb, 'rslt, 'ub>(
self,
network_buffer: &'nb mut [u8],
user_buffer: &'ub mut Vector<u8>,
) -> crate::Result<&'rslt mut [u8]>
where
'nb: 'rslt,
'ub: 'rslt,
{
Ok(match self {
WebSocketPayloadOrigin::Adaptive => network_buffer,
WebSocketPayloadOrigin::Consistent => {
user_buffer.extend_from_copyable_slice(network_buffer)?;
user_buffer.as_slice_mut()
}
})
}
}