Skip to content

IterPeekAt

Description

Propagating peek at signed offset n from the current position. Does not advance the iterator. Writes data[pos + n] to *out.

Success

*out is set, returns true.

Failure

pos + n is outside [0, length). *out is not written, returns false.

Usage example (Cross-references)

Usage examples (Cross-references)
        IterMove(&it, 2);
        u8 v;
        if (!IterPeekAt(&it, 0, &v) || v != 7) {
            return false;
        }
            return false;
        }
        if (!IterPeekAt(&it, 1, &v) || v != 8) {
            return false;
        }
            return false;
        }
        if (!IterPeekAt(&it, -2, &v) || v != 5) {
            return false;
        }
        BufIter  it     = BufIterFromMemory(buf, 2);
        u8       v      = 0xAA;
        if (IterPeekAt(&it, 2, &v)) {
            return false;
        }
            return false;
        }
        if (IterPeekAt(&it, -1, &v)) {
            return false;
        }
    /// TAGS: StrIter, Peek, Alias
    ///
    #define StrIterPeek(mi, out) IterPeekAt((mi), 0, (out))
    
    ///
    /// TAGS: StrIter, Peek, Offset, Alias
    ///
    #define StrIterPeekAt(mi, n, out) IterPeekAt((mi), (n), (out))
    
    ///
    /// TAGS: StrIter, Peek, Next
    ///
    #define StrIterPeekNext(mi, out) IterPeekAt((mi), (mi)->dir, (out))
    
    ///
    /// TAGS: StrIter, Peek, Prev
    ///
    #define StrIterPeekPrev(mi, out) IterPeekAt((mi), -((mi)->dir), (out))
    
    #endif // MISRA_STD_UTILITY_STR_ITER_H
    #define IterMustPeekAt(mi, n, out)                                                                                     \
        do {                                                                                                               \
            if (!IterPeekAt((mi), (n), (out))) {                                                                           \
                LOG_FATAL("IterMustPeekAt: offset out of range");                                                          \
            }                                                                                                              \
Last updated on