reflect: add string <-> []rune conversions

This commit is contained in:
Damian Gryski
2026-05-26 12:02:14 -07:00
committed by Damian Gryski
parent 6c30583062
commit f31b39775f
+20 -4
View File
@@ -1694,12 +1694,28 @@ func cvtUintString(src Value, t *RawType) Value {
panic("cvtUintString: unimplemented") panic("cvtUintString: unimplemented")
} }
func cvtStringRunes(src Value, t *RawType) Value { //go:linkname stringToRunes runtime.stringToRunes
panic("cvsStringRunes: unimplemented") func stringToRunes(s string) []rune
func cvtStringRunes(v Value, t *RawType) Value {
b := stringToRunes(*(*string)(v.value))
return Value{
typecode: t,
value: unsafe.Pointer(&b),
flags: v.flags,
}
} }
func cvtRunesString(src Value, t *RawType) Value { //go:linkname stringFromRunes runtime.stringFromRunes
panic("cvsRunesString: unimplemented") func stringFromRunes(r []rune) string
func cvtRunesString(v Value, t *RawType) Value {
s := stringFromRunes(*(*[]rune)(v.value))
return Value{
typecode: t,
value: unsafe.Pointer(&s),
flags: v.flags,
}
} }
//go:linkname slicePanic runtime.slicePanic //go:linkname slicePanic runtime.slicePanic