Add mitems and mpairs where it makes sense
This commit is contained in:
parent
6f4cd979e8
commit
46cf40c40d
5 changed files with 117 additions and 0 deletions
|
|
@ -122,6 +122,22 @@ iterator items*[T](L: DoublyLinkedRing[T]): T =
|
|||
## yields every value of `L`.
|
||||
itemsRingImpl()
|
||||
|
||||
iterator mitems*[T](L: var DoublyLinkedList[T]): var T =
|
||||
## yields every value of `L` so that you can modify it.
|
||||
itemsListImpl()
|
||||
|
||||
iterator mitems*[T](L: var SinglyLinkedList[T]): var T =
|
||||
## yields every value of `L` so that you can modify it.
|
||||
itemsListImpl()
|
||||
|
||||
iterator mitems*[T](L: var SinglyLinkedRing[T]): var T =
|
||||
## yields every value of `L` so that you can modify it.
|
||||
itemsRingImpl()
|
||||
|
||||
iterator mitems*[T](L: var DoublyLinkedRing[T]): var T =
|
||||
## yields every value of `L` so that you can modify it.
|
||||
itemsRingImpl()
|
||||
|
||||
iterator nodes*[T](L: SinglyLinkedList[T]): SinglyLinkedNode[T] =
|
||||
## iterates over every node of `x`. Removing the current node from the
|
||||
## list during traversal is supported.
|
||||
|
|
|
|||
|
|
@ -39,6 +39,15 @@ iterator items*[T](q: Queue[T]): T =
|
|||
yield q.data[i]
|
||||
i = (i + 1) and q.mask
|
||||
|
||||
iterator mitems*[T](q: var Queue[T]): var T =
|
||||
## yields every element of `q`.
|
||||
var i = q.rd
|
||||
var c = q.count
|
||||
while c > 0:
|
||||
dec c
|
||||
yield q.data[i]
|
||||
i = (i + 1) and q.mask
|
||||
|
||||
proc add*[T](q: var Queue[T], item: T) =
|
||||
## adds an `item` to the end of the queue `q`.
|
||||
var cap = q.mask+1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue