IterLength

Table of Contents

IterLength

Description

Get total length of this Iter object

Success

If provided Iter object is not NULL_ITER(mi) then returns size in bytes of memory region this Iter is iterating over.

Failure

If provided Iter is NULL_ITER(mi) then returns 0

Usage example (Cross-references)

    ///
    /// TAGS: StrIter, Length, Query, Iter
    #define StrIterLength(mi) IterLength(mi)
    
    ///
    #define IterMove(mi, n)                                                                                                \
    do {                                                                                                               \
    if (IterRemainingLength(mi) - (mi)->dir * (n) <= IterLength(mi))                                               \
    (mi)->pos += (mi)->dir * (n);                                                                              \
    } while (0)
    /// TAGS: Memory, Size, Iter
    ///
    #define IterSize(mi) IterLength(mi) * ALIGN_UP(sizeof(ITER_DATA_TYPE(mi)), (mi)->alignment)
    
    ///
    size remaining_length_iter(GenericIter *mi) {
    if ((mi)->dir == 1) {
    if ((mi)->pos < IterLength(mi)) {
    return IterLength(mi) - (mi)->pos;
    } else {
    if ((mi)->dir == 1) {
    if ((mi)->pos < IterLength(mi)) {
    return IterLength(mi) - (mi)->pos;
    } else {
    return 0;
    }
    } else if ((mi)->dir == -1) {
    if ((mi)->pos < IterLength(mi)) {
    return (mi)->pos + 1;
    } else {

Share :

Related Posts

IterPrev

IterPrev Description Move to previous element (wrapper for IterMove)

Read More

IterMove

IterMove Description Move current reading position of Iterator.

Read More

IterInitT

IterInitT Description Initialize default Iter object to iterate in forward direction.

Read More