Implements BackwardsIndex [] for deque. (#10105)
This commit is contained in:
parent
796432ff94
commit
d740a5b79a
1 changed files with 13 additions and 1 deletions
|
|
@ -88,11 +88,23 @@ proc `[]`*[T](deq: var Deque[T], i: Natural): var T {.inline.} =
|
||||||
xBoundsCheck(deq, i)
|
xBoundsCheck(deq, i)
|
||||||
return deq.data[(deq.head + i) and deq.mask]
|
return deq.data[(deq.head + i) and deq.mask]
|
||||||
|
|
||||||
proc `[]=`* [T] (deq: var Deque[T], i: Natural, val : T) {.inline.} =
|
proc `[]=`*[T](deq: var Deque[T], i: Natural, val : T) {.inline.} =
|
||||||
## Change the i-th element of `deq`.
|
## Change the i-th element of `deq`.
|
||||||
xBoundsCheck(deq, i)
|
xBoundsCheck(deq, i)
|
||||||
deq.data[(deq.head + i) and deq.mask] = val
|
deq.data[(deq.head + i) and deq.mask] = val
|
||||||
|
|
||||||
|
proc `[]`*[T](deq: var Deque[T], i: BackwardsIndex): var T {.inline.} =
|
||||||
|
## Access the backwards indexed i-th element.
|
||||||
|
return deq[deq.len - int(i)]
|
||||||
|
|
||||||
|
proc `[]`*[T](deq: Deque[T], i: BackwardsIndex): T {.inline.} =
|
||||||
|
## Access the backwards indexed i-th element.
|
||||||
|
return deq[deq.len - int(i)]
|
||||||
|
|
||||||
|
proc `[]=`*[T](deq: var Deque[T], i: BackwardsIndex, x: T) {.inline.} =
|
||||||
|
## Change the backwards indexed i-th element.
|
||||||
|
deq[deq.len - int(i)] = x
|
||||||
|
|
||||||
iterator items*[T](deq: Deque[T]): T =
|
iterator items*[T](deq: Deque[T]): T =
|
||||||
## Yield every element of `deq`.
|
## Yield every element of `deq`.
|
||||||
var i = deq.head
|
var i = deq.head
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue