src/iterator.c

changeset 851
adb4e0737c33
parent 850
b2bc48c2b251
child 853
d4baf4dd55c3
     1.1 --- a/src/iterator.c	Thu May 23 15:05:24 2024 +0200
     1.2 +++ b/src/iterator.c	Thu May 23 18:21:08 2024 +0200
     1.3 @@ -83,7 +83,7 @@
     1.4      }
     1.5  }
     1.6  
     1.7 -CxMutIterator cxIterator(
     1.8 +CxMutIterator cxMutIterator(
     1.9          void *array,
    1.10          size_t elem_size,
    1.11          size_t elem_count,
    1.12 @@ -104,3 +104,17 @@
    1.13  
    1.14      return iter;
    1.15  }
    1.16 +
    1.17 +CxIterator cxIterator(
    1.18 +        void const *array,
    1.19 +        size_t elem_size,
    1.20 +        size_t elem_count
    1.21 +) {
    1.22 +    CxMutIterator iter = cxMutIterator((void*)array, elem_size, elem_count, false);
    1.23 +    iter.base.mutating = false;
    1.24 +
    1.25 +    // we know the iterators share the same memory layout
    1.26 +    CxIterator ret;
    1.27 +    memcpy(&ret, &iter, sizeof(CxIterator));
    1.28 +    return ret;
    1.29 +}

mercurial