moq-transfork 0.2.0

Media over QUIC
Documentation
use crate::Error;

pub trait Close {
	fn close(&mut self, err: Error);
}

pub trait OrClose<S: Close, V> {
	fn or_close(self, stream: &mut S) -> Result<V, Error>;
}

impl<S: Close, V> OrClose<S, V> for Result<V, Error> {
	fn or_close(self, stream: &mut S) -> Result<V, Error> {
		match self {
			Ok(v) => Ok(v),
			Err(err) => {
				stream.close(err.clone());
				Err(err)
			}
		}
	}
}