File tree Expand file tree Collapse file tree 1 file changed +6
-0
lines changed Expand file tree Collapse file tree 1 file changed +6
-0
lines changed Original file line number Diff line number Diff line change @@ -51,6 +51,8 @@ proc `[]`*[T](p: UniquePtr[T]): var T {.inline.} =
51
51
assert(p.val != nil, "deferencing nil unique pointer ")
52
52
p.val[]
53
53
54
+ proc `[]=`*[T](p:UniquePtr[T], v:T) {.inline.} = (p[]) = v
55
+
54
56
proc `$`*[T](p: UniquePtr[T]): string {.inline.} =
55
57
if p.val == nil: "UniquePtr[" & $T & " ](nil)"
56
58
else : " UniquePtr[" & $ T & " ](" & $ p.val[] & " )"
@@ -110,6 +112,8 @@ proc `[]`*[T](p: SharedPtr[T]): var T {.inline.} =
110
112
doAssert(p.val != nil, "deferencing nil shared pointer ")
111
113
p.val.value
112
114
115
+ proc `[]=`*[T](p:SharedPtr[T], v:T) {.inline.} = (p[]) = v
116
+
113
117
proc `$`*[T](p: SharedPtr[T]): string {.inline.} =
114
118
if p.val == nil: "SharedPtr[" & $T & " ](nil)"
115
119
else : " SharedPtr[" & $ T & " ](" & $ p.val.value & " )"
@@ -135,6 +139,8 @@ proc `[]`*[T](p: ConstPtr[T]): lent T {.inline.} =
135
139
doAssert(SharedPtr[T](p).val != nil, "deferencing nil const pointer ")
136
140
SharedPtr[T](p).val.value
137
141
142
+ template `[]=`*[T](p:ConstPtr[T], v:T) = {.error: "'" & p.astToStr & "[]' cannot be assigned to (ConstPtr)".}
143
+
138
144
proc `$`*[T](p: ConstPtr[T]): string {.inline.} =
139
145
if SharedPtr[T](p).val == nil: "ConstPtr[" & $T & " ](nil)"
140
146
else : " ConstPtr[" & $ T & " ](" & $ SharedPtr[T](p).val.value & ")"
You can’t perform that action at this time.
0 commit comments