#[derive(Clone, Copy, PartialEq, Eq, Debug)]
pub enum StreamState {
Idle,
ReservedLocal,
ReservedRemote,
Open,
HalfClosedRemote,
HalfClosedLocal,
Closed,
}
impl StreamState {
pub fn is_closed(&self) -> bool {
*self == StreamState::Closed
}
pub fn is_closed_local(&self) -> bool {
match *self {
StreamState::HalfClosedLocal | StreamState::Closed => true,
_ => false,
}
}
pub fn is_closed_remote(&self) -> bool {
match *self {
StreamState::HalfClosedRemote | StreamState::Closed => true,
_ => false,
}
}
}
pub enum StreamStateIdleOrClosed {
Idle,
Closed,
}
impl From<StreamStateIdleOrClosed> for StreamState {
fn from(s: StreamStateIdleOrClosed) -> Self {
match s {
StreamStateIdleOrClosed::Idle => StreamState::Idle,
StreamStateIdleOrClosed::Closed => StreamState::Closed,
}
}
}