From cf85412812e3b6107fb13cd8b2f6cceedd421e12 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Wed, 21 Jan 2026 10:37:37 +0100 Subject: chore: wip: More Nectar features and expanding codegen. Signed-off-by: Amlal El Mahrouss --- include/GenericsLibrary/iterator.nhh | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) (limited to 'include/GenericsLibrary/iterator.nhh') diff --git a/include/GenericsLibrary/iterator.nhh b/include/GenericsLibrary/iterator.nhh index 302734c..3e6c723 100644 --- a/include/GenericsLibrary/iterator.nhh +++ b/include/GenericsLibrary/iterator.nhh @@ -6,7 +6,22 @@ #ifndef NECTAR_LIBNECTAR_ITERATOR_NHH #define NECTAR_LIBNECTAR_ITERATOR_NHH -impl iterator_traits +// Rules for iterator implementation: +// - _begin is the starting point of the iterator. +// - _end is the number of elements to iterate over. +// - _size is the total size of the collection. +trait iterator_traits +{ + let _begin := 0; + let _end := 0; + let _size := 0; + + let begin(); + let end(); + let size(); +}; + +impl iterator : iterator_traits { let init() { @@ -18,24 +33,23 @@ impl iterator_traits return; } - let begin(let it) + let begin() { - let end := it._begin; + let end := _begin; return end; } - let end(let it) + let end() { - let end := it._begin; - end += it._end; + let end :=_begin; + end += _end; return end; } - let size(let it) + let size() { - let sz := it._size; - return sz; + return _size; } }; -- cgit v1.2.3