Daemon & génération de code
Comportement du daemon
Le daemon surveille src/admin.rs en continu via notify.
À chaque modification détectée :
src/admin.rsest relu- La macro
admin! { ... }est parsée viasyn, produisant desResourceDef - Le dossier
src/admins/est supprimé puis entièrement régénéré - Un retour est affiché (succès ou erreur de parsing)
Un mécanisme de debounce (300 ms) évite les régénérations multiples lors d'un même enregistrement de fichier.
Une génération initiale est effectuée au démarrage du daemon, sans attendre de modification.
Structure générée
src/admins/
├── README.md ← avertissement : ne pas éditer manuellement
├── mod.rs ← expose `routes` et `admin_state`
└── admin_panel.rs ← fichier principal : wrappers DynForm + admin_register()
admin_panel.rs
Contient pour chaque ressource déclarée dans admin! :
- Un wrapper
DynFormautour du formulaire Runique concret - Les closures CRUD :
list_fn,get_fn,create_fn,update_fn,delete_fn,count_fn - Si
list_filterest déclaré : une closurefilter_fnpar champ, qui charge les valeurs distinctes depuis la base (jusqu'à 100) - La configuration d'affichage (colonnes visibles, taille de page filtre) transmise via
.display(…)sur leResourceEntry - La fonction
admin_register()qui construit leHashMap<String, ResourceEntry>chargé au boot
mod.rs
Ré-exporte routes et admin_state depuis admin_panel.
Le compromis : écrasement automatique
runique start supprime et régénère intégralement src/admins/ à chaque modification de src/admin.rs.
Toute modification manuelle dans ce dossier sera perdue lors de la prochaine régénération.
Quand basculer sur `cargo run`
Si des modifications manuelles du code généré sont nécessaires (logique métier spécifique, handler personnalisé), il faut arrêter runique start et passer à un workflow standard :
cargo run
Dans ce mode, src/admins/ n'est plus surveillé ni écrasé. Les modifications persistent.
Le
README.mdgénéré danssrc/admins/rappelle ce comportement directement dans le dépôt.
Autre section
| Section | Description |
|---|---|
| CLI | Fonctionnement de runique start |
Macro admin! | Déclaration des ressources administrables |