v0.2.17
This commit is contained in:
@@ -9,8 +9,9 @@ Elle applique les mêmes principes que la matrice numérique :
|
||||
```text
|
||||
aucune conversion implicite
|
||||
aucun mélange de types dans les opérations textuelles
|
||||
to... uniquement pour une conversion totale et sûre
|
||||
tryFrom... / tryTo... lorsqu'une validation ou une condition peut échouer
|
||||
conversion directe vers la valeur attendue
|
||||
faults UnicodeEncodingFault lorsqu'une validation runtime peut échouer
|
||||
aucune variante try... parallèle si elle ne change que le canal d'échec
|
||||
aucun alias redondant
|
||||
conversion explicite d'abord, opération ensuite
|
||||
```
|
||||
@@ -106,8 +107,8 @@ Ces transcodages sont totaux.
|
||||
UTF-8 :
|
||||
|
||||
```text
|
||||
Utf8Char::tryFrom(uint8)
|
||||
Utf8Char::tryFrom(StaticArray<uint8, N>)
|
||||
Utf8Char::from(uint8) faults UnicodeEncodingFault
|
||||
Utf8Char::from(StaticArray<uint8, N>) faults UnicodeEncodingFault
|
||||
```
|
||||
|
||||
`N` utile : 1 à 4. Le contenu doit représenter exactement un scalar UTF-8 valide.
|
||||
@@ -115,8 +116,8 @@ Utf8Char::tryFrom(StaticArray<uint8, N>)
|
||||
UTF-16 :
|
||||
|
||||
```text
|
||||
Utf16Char::tryFrom(uint16)
|
||||
Utf16Char::tryFrom(StaticArray<uint16, 2>)
|
||||
Utf16Char::from(uint16) faults UnicodeEncodingFault
|
||||
Utf16Char::from(StaticArray<uint16, 2>) faults UnicodeEncodingFault
|
||||
```
|
||||
|
||||
Un surrogate isolé est invalide.
|
||||
@@ -124,7 +125,7 @@ Un surrogate isolé est invalide.
|
||||
UTF-32 :
|
||||
|
||||
```text
|
||||
Utf32Char::tryFrom(uint32)
|
||||
Utf32Char::from(uint32) faults UnicodeEncodingFault
|
||||
```
|
||||
|
||||
La valeur doit être <= `0x10FFFF` et hors de la plage surrogate.
|
||||
@@ -132,15 +133,17 @@ La valeur doit être <= `0x10FFFF` et hors de la plage surrogate.
|
||||
Le nom de travail de l'erreur est :
|
||||
|
||||
```text
|
||||
UnicodeEncodingError extends ResultError
|
||||
UnicodeEncodingFault extends Fault
|
||||
```
|
||||
|
||||
Le Core ne fournit pas simultanément une variante `tryFrom... -> Result` ayant exactement la même validation. Si un domaine applicatif souhaite transporter l'échec comme valeur, il peut encapsuler explicitement la construction dans son propre `Result`.
|
||||
|
||||
## B.7. `UtfXChar` -> code unit brute
|
||||
|
||||
| Source | Destination | Opération | Raison |
|
||||
|---|---|---|---|
|
||||
| `Utf8Char` | `uint8` | `tryToUint8()` | 1 à 4 unités possibles |
|
||||
| `Utf16Char` | `uint16` | `tryToUint16()` | 1 ou 2 unités possibles |
|
||||
| `Utf8Char` | `uint8` | `toUint8() faults UnicodeEncodingFault` | 1 à 4 unités possibles |
|
||||
| `Utf16Char` | `uint16` | `toUint16() faults UnicodeEncodingFault` | 1 ou 2 unités possibles |
|
||||
| `Utf32Char` | `uint32` | `toUint32()` | exactement 1 unité |
|
||||
|
||||
Les séquences complètes de code units sont accessibles via `codeUnits()`. Le type concret de vue retourné sera fixé avec les collections/slices.
|
||||
@@ -176,9 +179,9 @@ Tous ces transcodages sont explicites et totaux.
|
||||
Conceptuellement :
|
||||
|
||||
```text
|
||||
Utf8String::tryFrom(Array<uint8>)
|
||||
Utf16String::tryFrom(Array<uint16>)
|
||||
Utf32String::tryFrom(Array<uint32>)
|
||||
Utf8String::from(Array<uint8>) faults UnicodeEncodingFault
|
||||
Utf16String::from(Array<uint16>) faults UnicodeEncodingFault
|
||||
Utf32String::from(Array<uint32>) faults UnicodeEncodingFault
|
||||
```
|
||||
|
||||
Le type exact accepté pourra inclure des slices/vues lors de leur définition.
|
||||
@@ -283,5 +286,5 @@ les opérations mutantes sont interdites via `text`, mais un autre alias mutable
|
||||
3. nom exact de l'API de décodage depuis un offset de code unit ;
|
||||
4. API précise de concaténation et ses opérateurs ;
|
||||
5. builders/buffers et leurs relations avec les strings valides ;
|
||||
6. codes définitifs de `UnicodeEncodingError` ;
|
||||
6. codes définitifs de `UnicodeEncodingFault` ;
|
||||
7. localisation Core/SDK des opérations Unicode avancées : graphemes, normalisation, case folding, collation.
|
||||
|
||||
Reference in New Issue
Block a user