inspector 0.1.0

General purpose inspection for popular data structures
Documentation
extern crate inspector;

#[cfg(all(test, feature = "result"))]
mod tests {
    use inspector::ResultInspector;

    #[test]
    fn result_ok() {
        let mut inspect_called = false;

        let o: Result<u8, u8> = Ok(2);

        o.inspect(|i| {
            inspect_called = true;
            assert_eq!(*i, 2)
        })
        .unwrap();

        if cfg!(any(debug_assertions, not(feature = "debug-only"))) {
            assert!(inspect_called);
        } else {
            assert!(!inspect_called);
        }

        o.inspect_err(|_| unreachable!()).unwrap();
    }

    #[test]
    fn result_err() {
        let mut inspect_called = false;

        let o: Result<u8, u8> = Err(3);

        o.inspect(|i| {
            inspect_called = true;
            assert_eq!(*i, 3)
        })
        .unwrap_err();

        assert!(!inspect_called);

        o.inspect_err(|i| {
            inspect_called = true;
            assert_eq!(*i, 3)
        })
        .unwrap_err();

        if cfg!(any(debug_assertions, not(feature = "debug-only"))) {
            assert!(inspect_called);
        } else {
            assert!(!inspect_called);
        }

        o.inspect(|_| unreachable!()).unwrap_err();
    }
}