Un fichier qui explique ses entrées
Sur le papier, un service d'archives écrit sur la chemise elle-même : la référence, le bureau d'où elle vient, la date après laquelle elle peut être détruite. Numérisez la chemise et cette écriture n'a plus nulle part où aller. Écrivez-la à l'intérieur du fichier et il arrive pire — le fichier cesse en silence d'obéir aux règles d'archivage qu'il dit suivre, et le jour où quelqu'un le contrôle, il revient refusé.
Toute règle d'archivage connaît un titre et un auteur ; une date de conservation n'appartient qu'à vous. Ce fichier contient donc ces entrées et, à côté de chacune, une description : comment elle s'appelle, comment elle se lit, à qui elle s'adresse, ce qu'elle signifie. C'est cette description qu'un contrôleur cherche en premier, et c'est sur elle qu'il accepte un renseignement que personne d'autre que vous n'a inventé. La page imprime exactement les cinq mêmes entrées que le relevé caché à l'intérieur — une référence, un département, une date en 2056, un classement et un nombre de feuillets — pour que ce qu'une personne lit et ce qu'une machine lit ne puissent pas s'écarter.
Ce que montre cet exemple
- Cinq entrées inventées par un service d'archives, dont une date en 2056 avant laquelle rien ne peut être détruit.
- Chaque entrée arrivant avec sa propre description, et c'est sur elle qu'un contrôleur l'accepte.
- La page et le relevé caché imprimés depuis une seule liste, pour qu'ils ne puissent pas se contredire.
Le code source complet
Rien n'est omis et rien n'est simplifié : c'est le programme exactement tel qu'il tourne, pour le développeur qui utilise cette bibliothèque.
La troisième est la description elle-même : une simple liste de ce que la page doit dire, et c'est elle qu'on envoie au service.
Voir le code Rust
Voir le code Python
Voir le code JSON
Le document lui-même
Ouvrir le document en anglais
Ouvrir le document en français