flipflop 0.2.0

Stress-tester for double-ended iterators.
Documentation
//! [`Side`] type.

use core::fmt;

/// Which side of an iterator to check.
#[derive(Copy, Clone, PartialEq, Eq, Hash, Default, Debug)]
pub enum Side {
    /// Forward direction. (`next`)
    #[default]
    Forward,

    /// Backward direction. (`next_back`)
    Backward,
}
impl Side {
    /// Alternates sides.
    #[inline]
    pub fn swap(self) -> Side {
        match self {
            Side::Forward => Side::Backward,
            Side::Backward => Side::Forward,
        }
    }
}
impl fmt::Display for Side {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        f.pad(match self {
            Side::Forward => "forward",
            Side::Backward => "backward",
        })
    }
}