Skip to content
IterMustPeekAt

IterMustPeekAt

Description

Aborting variant of IterPeekAt. See that macro for parameter semantics and success-state effects.

Success

Returns to the caller; the underlying IterPeekAt succeeded.

Failure

Does not return - aborts via LOG_FATAL when pos + n is out of range.

Usage example (Cross-references)

Usage examples (Cross-references)
        u8       v;
        // pos=0, length=1: peek at +1 is out of range.
        IterMustPeekAt(&it, 1, &v);
        return true; // unreachable
    }
    #define StrIterPeek(mi, out) IterPeekAt((mi), 0, (out))
    /// Aborting variant of `StrIterPeek`.
    #define StrIterMustPeek(mi, out) IterMustPeekAt((mi), 0, (out))
    
    /// Propagating: writes `*out` with the char at signed offset `n`.
    #define StrIterPeekAt(mi, n, out) IterPeekAt((mi), (n), (out))
    /// Aborting variant of `StrIterPeekAt`.
    #define StrIterMustPeekAt(mi, n, out) IterMustPeekAt((mi), (n), (out))
    
    /// Propagating: peek one ahead in iteration direction.
        do {                                                                                                               \
            if (!IterPeekAt((mi), (n), (out))) {                                                                           \
                LOG_FATAL("IterMustPeekAt: offset out of range");                                                          \
            }                                                                                                              \
        } while (0)
Last updated on