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")
}
func cvtStringRunes(src Value, t *RawType) Value {
panic("cvsStringRunes: unimplemented")
//go:linkname stringToRunes runtime.stringToRunes
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 {
panic("cvsRunesString: unimplemented")
//go:linkname stringFromRunes runtime.stringFromRunes
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