diff --git a/changelog.md b/changelog.md index d19cac926982e..6081c90b1eef4 100644 --- a/changelog.md +++ b/changelog.md @@ -252,6 +252,8 @@ provided by the operating system. - `--newruntime` and `--refchecks` are deprecated. +- Added `unsafeIsolate` and `extract` to `std/isolation`. + ## Tool changes - The rst parser now supports markdown table syntax. diff --git a/lib/std/isolation.nim b/lib/std/isolation.nim index 7c44f47fb6e33..70395d6d496be 100644 --- a/lib/std/isolation.nim +++ b/lib/std/isolation.nim @@ -30,3 +30,11 @@ func isolate*[T](value: sink T): Isolated[T] {.magic: "Isolate".} = ## Please read https://github.com/nim-lang/RFCs/issues/244 ## for more details. Isolated[T](value: value) + +func unsafeIsolate*[T](value: sink T): Isolated[T] = + ## Creates an isolated subgraph from the expression `value`. + Isolated[T](value: value) + +func extract*[T](src: var Isolated[T]): T = + ## Returns the internal value of `src`. + result = move(src.value)