12345678910111213141516171819202122232425262728293031323334 |
- ##[
- `since` is used to emulate older versions of nim stdlib with `--useVersion`,
- see `tuse_version.nim`.
- If a symbol `foo` is added in version `(1,3,5)`, use `{.since: (1.3.5).}`, not
- `{.since: (1.4).}`, so that it works in devel in between releases.
- The emulation cannot be 100% faithful and to avoid adding too much complexity,
- `since` is not needed in those cases:
- * if a new module is added
- * if an overload is added
- * if an extra parameter to an existing routine is added
- ]##
- template since*(version: (int, int), body: untyped) {.dirty.} =
- ## Evaluates `body` if the ``(NimMajor, NimMinor)`` is greater than
- ## or equal to `version`. Usage:
- ##
- ## .. code-block:: Nim
- ## proc fun*() {.since: (1, 3).}
- ## since (1, 3): fun()
- when (NimMajor, NimMinor) >= version:
- body
- template since*(version: (int, int, int), body: untyped) {.dirty.} =
- ## Evaluates `body` if ``(NimMajor, NimMinor, NimPatch)`` is greater than
- ## or equal to `version`. Usage:
- ##
- ## .. code-block:: Nim
- ## proc fun*() {.since: (1, 3, 1).}
- ## since (1, 3, 1): fun()
- when (NimMajor, NimMinor, NimPatch) >= version:
- body
|