From 7fb220d1e8cbc6cc67b5b12602d4ac0305e693be Mon Sep 17 00:00:00 2001 From: Jacek Sieka Date: Fri, 16 Apr 2021 15:23:36 +0200 Subject: [PATCH] assign2: string support (#81) --- stew/assign2.nim | 4 ++++ tests/test_assign2.nim | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/stew/assign2.nim b/stew/assign2.nim index 0ebf181..6ab460d 100644 --- a/stew/assign2.nim +++ b/stew/assign2.nim @@ -32,6 +32,10 @@ func assign*[T](tgt: var seq[T], src: openArray[T]) = tgt.setLen(src.len) assignImpl(tgt.toOpenArray(0, tgt.high), src) +func assign*(tgt: var string, src: string) = + tgt.setLen(src.len) + assignImpl(tgt.toOpenArrayByte(0, tgt.high), src.toOpenArrayByte(0, tgt.high)) + macro unsupported(T: typed): untyped = error "Assignment of the type " & humaneTypeName(T) & " is not supported" diff --git a/tests/test_assign2.nim b/tests/test_assign2.nim index dddbe13..f5ebe26 100644 --- a/tests/test_assign2.nim +++ b/tests/test_assign2.nim @@ -9,6 +9,7 @@ suite "assign2": a = 5 b = [2, 3] c = @[5, 6] + d = "hello" assign(c, b) check: c == b @@ -21,6 +22,9 @@ suite "assign2": assign(c.toOpenArray(0, 1), [2, 2]) check: c == [2, 2] + assign(d, "there!") + check: d == "there!" + var dis = X(53)