use super::OperationCodecError;
pub trait OperationOutput {
fn len(&self) -> usize;
fn is_empty(&self) -> bool {
self.len() == 0
}
fn truncate(&mut self, len: usize);
fn extend(&mut self, bytes: &[u8]) -> Result<(), OperationCodecError>;
fn payload(&mut self, bytes: &[u8]) -> Result<(), OperationCodecError> {
self.extend(bytes)
}
}
impl OperationOutput for Vec<u8> {
fn len(&self) -> usize {
self.len()
}
fn truncate(&mut self, len: usize) {
self.truncate(len);
}
fn extend(&mut self, bytes: &[u8]) -> Result<(), OperationCodecError> {
self.extend_from_slice(bytes);
Ok(())
}
}