category

# `character_set`

Shared implementation support category for character set objects.

Availability:
`logtalk_load(character_sets(loader))`
Author: Paulo Moura
Version: 1:0:0
Date: 2026-04-05
Compilation flags:
`static`
Implements:
`public` character_set_protocol
Remarks:
(none)
Inherited public predicates:
alias/1 bytes_to_codes/2 codes_to_bytes/2 mibenum/1 name/1 preferred_mime_name/1

## Public predicates

(no local declarations; see entity ancestors if any)

## Protected predicates

### `valid_unicode_scalar/1`

True if the argument is a valid Unicode scalar value.

Compilation flags:
`static`
Template:
`valid_unicode_scalar(Code)`
Mode and number of proofs:
`valid_unicode_scalar(+integer)` - `zero_or_one`

### `continuation_byte/1`

True if the argument is a valid UTF continuation byte.

Compilation flags:
`static`
Template:
`continuation_byte(Byte)`
Mode and number of proofs:
`continuation_byte(+integer)` - `zero_or_one`

### `high_surrogate/1`

True if the argument is a UTF-16 high surrogate code point.

Compilation flags:
`static`
Template:
`high_surrogate(Code)`
Mode and number of proofs:
`high_surrogate(+integer)` - `zero_or_one`

### `low_surrogate/1`

True if the argument is a UTF-16 low surrogate code point.

Compilation flags:
`static`
Template:
`low_surrogate(Code)`
Mode and number of proofs:
`low_surrogate(+integer)` - `zero_or_one`

### `word_bytes/4`

Converts a 16-bit word into two bytes using the given byte order.

Compilation flags:
`static`
Template:
`word_bytes(Endian,Word,Byte1,Byte2)`
Mode and number of proofs:
`word_bytes(+atom,+integer,-integer,-integer)` - `one`

### `dword_bytes/6`

Converts a 32-bit word into four bytes using the given byte order.

Compilation flags:
`static`
Template:
`dword_bytes(Endian,Word,Byte1,Byte2,Byte3,Byte4)`
Mode and number of proofs:
`dword_bytes(+atom,+integer,-integer,-integer,-integer,-integer)` - `one`

### `bytes_word/4`

Converts two bytes into a 16-bit word using the given byte order.

Compilation flags:
`static`
Template:
`bytes_word(Endian,Byte1,Byte2,Word)`
Mode and number of proofs:
`bytes_word(+atom,+integer,+integer,-integer)` - `one`

### `bytes_dword/6`

Converts four bytes into a 32-bit word using the given byte order.

Compilation flags:
`static`
Template:
`bytes_dword(Endian,Byte1,Byte2,Byte3,Byte4,Word)`
Mode and number of proofs:
`bytes_dword(+atom,+integer,+integer,+integer,+integer,-integer)` - `one`

## Private predicates

(no local declarations; see entity ancestors if any)

## Operators

(none)