pub enum ReadStatus<T> {
Success(T),
NotEnoughData(u64),
}
impl<T> ReadStatus<T> {
pub fn map<K, F>(self, mapper: F) -> ReadStatus<K>
where
F: FnOnce(T) -> K,
{
match self {
ReadStatus::Success(value) => ReadStatus::Success(mapper(value)),
ReadStatus::NotEnoughData(n) => ReadStatus::NotEnoughData(n),
}
}
}
pub enum PacketReadStatus<T> {
#[cfg(not(feature = "resilient"))]
Success(T),
#[cfg(feature = "resilient")]
Success((T, Vec<crate::Unrecognized>)),
NotEnoughData(u64),
}
impl<T> PacketReadStatus<T> {
#[cfg(feature = "resilient")]
pub fn success(value: T, unrecognized: Vec<crate::Unrecognized>) -> Self {
Self::Success((value, unrecognized))
}
#[cfg(not(feature = "resilient"))]
pub fn success(value: T) -> Self {
Self::Success(value)
}
}