readding inline to some stack.nim procs

This commit is contained in:
prod2 2022-02-14 10:46:49 +01:00
parent 856d1345e4
commit 70fa10bfa6
2 changed files with 7 additions and 7 deletions

View File

@ -3,4 +3,4 @@ var fib = proc(n)
else fib(n-1) + fib(n-2)
;
print (fib(37));
print (fib(37));

View File

@ -42,7 +42,7 @@ template high*[T](stack: Stack[T]): int =
template len*[T](stack: Stack[T]): int =
stack.high() + 1
proc push*[T](stack: var Stack[T], item: T) =
proc push*[T](stack: var Stack[T], item: T) {.inline.} =
let len = stack.len()
if len == stack.cap:
stack.grow(len)
@ -53,20 +53,20 @@ proc push*[T](stack: var Stack[T], item: T) =
template add*[T](stack: var Stack[T], item: T) =
stack.push(item)
proc pop*[T](stack: var Stack[T]): T =
proc pop*[T](stack: var Stack[T]): T {.inline.} =
when boundsChecks:
if stack.top == nil or stack.top.pless(stack.start):
raise newException(Defect, "Stacktop is nil or smaller than start.")
result = stack.top[]
stack.top = stack.top.psub(sizeof(T))
proc peek*[T](stack: Stack[T]): var T =
proc peek*[T](stack: Stack[T]): var T {.inline.} =
when boundsChecks:
if stack.top == nil or stack.top.pless(stack.start):
raise newException(Defect, "Stacktop is nil or smaller than start.")
stack.top[]
proc settip*[T](stack: var Stack[T], newtip: T) =
proc settip*[T](stack: var Stack[T], newtip: T) {.inline.} =
when boundsChecks:
if stack.top == nil or stack.top.pless(stack.start):
raise newException(Defect, "Stacktop is nil or smaller than start")
@ -87,7 +87,7 @@ proc deleteTopN*[T](stack: var Stack[T], n: Natural) =
if stack.top.pless(stack.start):
raise newException(Defect, "Stacktop sunk below the start after a deleteTopN.")
proc getIndex*[T](stack: Stack[T], index: int): var T =
proc getIndex*[T](stack: Stack[T], index: int): var T {.inline.} =
when boundsChecks:
if index < 0 or index >= stack.len():
raise newException(Defect, &"Attempt to getIndex with an index {index} which is out of bounds (len: {stack.len()}).")
@ -102,7 +102,7 @@ proc getIndexNeg*[T](stack: Stack[T], index: int): var T =
template `[]`*[T](stack: Stack[T], index: int): var T =
stack.getIndex(index)
proc setIndex*[T](stack: var Stack[T], index: int, item: T) =
proc setIndex*[T](stack: var Stack[T], index: int, item: T) {.inline.} =
when boundsChecks:
if index < 0 or index >= stack.len():
raise newException(Defect, "Attempt to getIndex with an index out of bounds.")