Skip to content
Snippets Groups Projects

Resolve "Reliability: remove all "unwrap()" and deny their use"

Merged dvermd requested to merge dvermd/duniter-rs:134-remove-all-unwrap into dev

Closes #134 (closed)

Edited by Éloïs

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Éloïs
  • Éloïs
  • Éloïs
  • Éloïs
  • Éloïs
  • Éloïs
  • Éloïs
  • Éloïs
  • Éloïs
  • Éloïs
  • Éloïs
  • Éloïs
  • @dvermd quelques généralités sur le traitement des erreurs :

    On ne retourne un Result que quand l'erreur produite est un cas gérable (c'est a dire que le programme peut continuer a tourner), ou que c'est a l'appelant de décider si l'on peut continuer ou pas.

    Dans les cas des unwrap() des rules, ces rules sont le résultat d'un parsing par une gramme PEG (via pest.rs), la grammaire fait déjà tout les contrôles nécessaires, et l'on est donc garanti à 100% d'avoir une chaîne de caractère qui se parsera correctement dans le type cible (sauf erreur de dev dans l'écriture de la grammaire).

    C'est pourquoi il ne faut pas faire de traitement d'erreur pour ces cas, si une string obtenue d'une rule pest ne se parse pas correctement, c'est nécessairement qu'il y a une erreur dans l'écriture de la grammaire, et donc il faut panic :)

    Tout les unwrap() qui concernent des rules pest sont a remplacer par des expect, en précisant dans le expect que la grammaire assure déjà que le parsing réussira (en indiquant le nom de la règle dans le message du expect).

    Edited by Éloïs
  • Author Developer

    Ok, je reprends tout ça.

  • dvermd added 3 commits

    added 3 commits

    • 4bfc976b - [Fix] WIP json-pest-parser: remove unwrap
    • ff9bf966 - [Fix] json-pest-parser: Remove unwrap and deny its use
    • d18386ba - wip: [Fix] WIP network-documents: Remove unwrap and deny its use

    Compare with previous version

  • dvermd resolved all threads

    resolved all threads

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading