Source File
runes.go
Belonging Package
golang.org/x/text/runes
package runes // import "golang.org/x/text/runes"
import (
)
type Transformer struct {
t transform.SpanningTransformer
}
func ( Transformer) (, []byte, bool) (, int, error) {
return .t.Transform(, , )
}
func ( Transformer) ( []byte, bool) ( int, error) {
return .t.Span(, )
}
func ( Transformer) () { .t.Reset() }
const runeErrorString = string(utf8.RuneError)
func ( Set) Transformer {
return Transformer{remove()}
}
return Transformer{remove(.Contains)}
}
if ! && !utf8.FullRune([:]) {
= transform.ErrShortSrc
} else {
= transform.ErrEndOfSpan
}
break
}
if () {
= transform.ErrEndOfSpan
break
}
+=
}
return
}
if ! && !utf8.FullRune([:]) {
= transform.ErrShortSrc
break
if !(utf8.RuneError) {
if +3 > len() {
= transform.ErrShortDst
break
}
[+0] = runeErrorString[0]
[+1] = runeErrorString[1]
[+2] = runeErrorString[2]
+= 3
}
++
continue
}
if () {
+=
continue
}
if + > len() {
= transform.ErrShortDst
break
}
for := 0; < ; ++ {
[] = []
++
++
}
}
return
}
func ( func(rune) rune) Transformer {
return Transformer{mapper()}
}
type mapper func(rune) rune
func (mapper) () {}
if ! && !utf8.FullRune([:]) {
= transform.ErrShortSrc
} else {
= transform.ErrEndOfSpan
}
break
}
if () != {
= transform.ErrEndOfSpan
break
}
}
return ,
}
if ! && !utf8.FullRune([:]) {
= transform.ErrShortSrc
break
}
if = (utf8.RuneError); == utf8.RuneError {
if +3 > len() {
= transform.ErrShortDst
break
}
[+0] = runeErrorString[0]
[+1] = runeErrorString[1]
[+2] = runeErrorString[2]
+= 3
++
continue
}
} else if = (); == {
if + > len() {
= transform.ErrShortDst
break
}
for := 0; < ; ++ {
[] = []
++
++
}
continue
}
:= utf8.EncodeRune([:], )
if + > len() {
= transform.ErrShortDst
break
}
for := 0; < ; ++ {
[] = []
++
}
+=
}
return
}
func () Transformer {
return Transformer{&replaceIllFormed{}}
}
type replaceIllFormed struct{ transform.NopResetter }
func ( replaceIllFormed) ( []byte, bool) ( int, error) {
if [] < utf8.RuneSelf {
++
continue
}
, := utf8.DecodeRune([:])
if ! && !utf8.FullRune([:]) {
= transform.ErrShortSrc
break
}
= transform.ErrEndOfSpan
break
}
return ,
}
func ( replaceIllFormed) (, []byte, bool) (, int, error) {
if := []; < utf8.RuneSelf {
if == len() {
= transform.ErrShortDst
break
}
[] =
++
++
continue
}
if , := utf8.DecodeRune([:]); != 1 {
if != copy([:], [:+]) {
= transform.ErrShortDst
break
}
+=
+=
continue
}
if ! && !utf8.FullRune([:]) {
= transform.ErrShortSrc
break
}
if +3 > len() {
= transform.ErrShortDst
break
}
[+0] = runeErrorString[0]
[+1] = runeErrorString[1]
[+2] = runeErrorString[2]
+= 3
++
}
return , ,
![]() |
The pages are generated with Golds v0.3.2-preview. (GOOS=darwin GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |