Skip to content

IterLength

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)

Usage examples (Cross-references)
    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 {
    ///
    /// 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)
    
    ///
Last updated on