diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2026-01-21 10:37:37 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2026-01-21 10:37:37 +0100 |
| commit | cf85412812e3b6107fb13cd8b2f6cceedd421e12 (patch) | |
| tree | 1dc1707bf6edb192cd90c01780c5dd032684ade2 /include/GenericsLibrary/iterator.nhh | |
| parent | dd67da34d17d54b3e70bd9fe42de19d64960b14f (diff) | |
chore: wip: More Nectar features and expanding codegen.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'include/GenericsLibrary/iterator.nhh')
| -rw-r--r-- | include/GenericsLibrary/iterator.nhh | 32 |
1 files changed, 23 insertions, 9 deletions
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; } }; |
