unistring

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 26, 2023 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package unistring contains an implementation of a hybrid ASCII/UTF-16 string. For ASCII strings the underlying representation is equivalent to a normal Go string. For unicode strings the underlying representation is UTF-16 as []uint16 with 0th element set to 0xFEFF. unicode.String allows representing malformed UTF-16 values (e.g. stand-alone parts of surrogate pairs) which cannot be represented in UTF-8. At the same time it is possible to use unicode.String as property keys just as efficiently as simple strings, (the leading 0xFEFF ensures there is no clash with ASCII string), and it is possible to convert it to valueString without extra allocations.

Index

Constants

View Source
const (
	BOM = 0xFEFF
)

Variables

This section is empty.

Functions

func Scan

func Scan(s string) []uint16

Scan checks if the string contains any unicode characters. If it does, converts to an array suitable for creating a String using FromUtf16, otherwise returns nil.

Types

type String

type String string

func FromUtf16

func FromUtf16(b []uint16) String

func NewFromRunes

func NewFromRunes(s []rune) String

func NewFromString

func NewFromString(s string) String

func (String) AsUtf16

func (s String) AsUtf16() []uint16

func (String) String

func (s String) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL