summaryrefslogtreecommitdiffhomepage
path: root/include/GenericsLibrary/iterator.nhh
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2026-01-21 10:37:37 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2026-01-21 10:37:37 +0100
commitcf85412812e3b6107fb13cd8b2f6cceedd421e12 (patch)
tree1dc1707bf6edb192cd90c01780c5dd032684ade2 /include/GenericsLibrary/iterator.nhh
parentdd67da34d17d54b3e70bd9fe42de19d64960b14f (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.nhh32
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;
}
};