mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-13 15:33:40 +00:00
reflect: add string <-> []rune conversions
This commit is contained in:
committed by
Damian Gryski
parent
6c30583062
commit
f31b39775f
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user