|Maintainer||[email protected], [email protected], [email protected]|
Support for using
Text data with native code via the Haskell
foreign function interface.
Interoperability with native code
Text type is implemented using arrays that are not guaranteed
to have a fixed address in the Haskell heap. All communication with
native code must thus occur by copying data back and forth.
Text type's internal representation is UTF-16, using the
platform's native endianness. This makes copied data suitable for
use with native libraries that use a similar representation, such
as ICU. To interoperate with native libraries that use different
internal representations, such as UTF-8 or UTF-32, consider using
the functions in the
A type representing a number of UTF-16 code units.
Safe conversion functions
O(n) Create a new
Text from a
Word16 by copying the
contents of the array.
O(n) Perform an action on a temporary, mutable copy of a
Text. The copy is freed as soon as the action returns.
Unsafe conversion code
O(1) Return the length of a
Text in units of
is useful for sizing a target array appropriately before using
Foreign functions that use UTF-16 internally may return indices in
Word16 instead of characters. These functions may
safely be used with such indices, as they will adjust offsets if
necessary to preserve the validity of a Unicode string.