This commit is contained in:
2026-09-13 10:20:16 +02:00
parent 019c8ad335
commit b72193d656
38 changed files with 1523 additions and 837 deletions

View File

@@ -95,26 +95,37 @@ Aucun `Utf8CodeUnit` / `Utf16CodeUnit` / `Utf32CodeUnit` distinct n'est introdui
Aucun transcodage implicite n'existe.
Les conversions totales utilisent `to...`.
Les constructions ou réductions pouvant échouer utilisent `tryFrom...` / `tryTo...`.
Les conversions directes retournent la destination attendue. Lorsqu'une validation runtime peut échouer, la callable peut déclarer `faults UnicodeEncodingFault` au lieu de forcer un `ResultError` ou une variante `try...` parallèle.
Exemples :
```text
char::toUtf8Char()
Utf8Char::toChar()
Utf8Char::toUtf16Char()
char::toUtf8Char() -> Utf8Char
Utf8Char::toChar() -> char
Utf8Char::toUtf16Char() -> Utf16Char
Utf8Char::tryFrom(uint8)
Utf16Char::tryFrom(uint16)
Utf32Char::tryFrom(uint32)
Utf8Char::from(uint8) -> Utf8Char
faults UnicodeEncodingFault
Utf8Char::tryToUint8()
Utf16Char::tryToUint16()
Utf32Char::toUint32()
Utf16Char::from(uint16) -> Utf16Char
faults UnicodeEncodingFault
Utf32Char::from(uint32) -> Utf32Char
faults UnicodeEncodingFault
Utf8Char::toUint8() -> uint8
faults UnicodeEncodingFault
Utf16Char::toUint16() -> uint16
faults UnicodeEncodingFault
Utf32Char::toUint32() -> uint32
```
`UnicodeEncodingFault extends Fault` est le nom de travail du fault Core associé aux données encodées invalides ou aux réductions impossibles.
Le Core n'expose pas simultanément `from(...)` et `tryFrom(...)` lorsque les deux opérations auraient exactement la même sémantique et ne différeraient que par le canal d'échec.
La matrice normative détaillée est définie dans `annexes/B-unicode-encoding-conversions.md`.
## 21.5 Aucun mélange implicite de types — V1 REQUIS — FIGÉ