RustViz : résoudre les problèmes fréquents d'installation et de génération de visuels

  1. Configuration préalable et instlalation

Assurez‑vous d’avoir un environnement Rust fonctionnel (recommandé via rustup). Clonez ensuite le dépôt et compilez le projet :

git clone https://gitcode.com/gh_mirrors/ru/rustviz
cd rustviz
cargo build --release

Si la compilation échoue à cause d’une dépendance manquante, vérifiez le fichier Cargo.toml ; l’absence de la crate RustvizParse ou svg_generator bloque souvent la construction.

1.1 Erreur « linker 'cc' not found »

Sur une distribution Ubuntu/Debian, installez les paquets de compilation :

sudo apt-get install build-essential

Sur Fedora/RHEL :

sudo dnf install gcc

  1. Génération des premières visualisations

Une fois le binaire compilé, rendez‑vous dans le dossier d’exemple et lancez l’exécutable :

cd examples/immutable_borrow
cargo run

Les fichiers SVG (vis_code.svg et vis_timeline.svg) sont créés dans le répertoire courant. S’ils n’apparaissent pas, ouvrez input/annotated_source.rs et vérifiez que les annotations de commentaire sont bien présentes.

2.1 Fichiers SVG mal affichés

Un rendu déformé peut provenir d’un modèle corrompu. Rechargez le modèle par défaut :

cp src/svg_generator/templates/code_template.svg examples/immutable_borrow/

Assurez‑vous aussi que le fichier CSS référencé par svg_generator est accessible (situé dans src/svg_generator/svg_frontend/).

  1. Personnalisation et optimisation

3.1 Modifier l’apparence des SVG

Les styles sont définis dans src/svg_generator/templates/book_svg_style.css. Par exemple, pour changer la couleur de fond du panneau de code :

.code-panel {
  fill: #eef2f5; /* gris clair */
}

3.2 Visualiser du code complexe

Quand le code source est volumineux, divisez‑le en plusiuers exemples plus petits. Utilisez le commentaire // rustviz: skip pour exclure des sections. Ajustez les paramètres de mise en page dans src/svg_generator/data.rs (espacemnet de la timeline).

  1. Erreurs fréquentes et interprétation

4.1 Conflit d’emprunt (borrow) dans la timeline

Le message « Cannot borrow as mutable because it is also borrowed as immutable » est bien illustré par RustViz : l’emprunt immuable r1 (lignes 3‑6) empêche l’emprunt mutable r3 à la ligne 8. Solution : réorganisez les usages pour que l’emprunt mutable intervienne après la fin des emprunts immuables.

4.2 Résultat inattendu

Si les flèches de la timeline sont mal orientées, vérifiez la syntaxe des annotations. Exemple correct :

// @ownership (s) 1:2-10:1
let mut s = String::from("hello");

La documentation complète se trouve dans descriptions/RustvizParse.md.

  1. Ressources supplémentaires

Consultez les fichiers Markdown dans descriptions/ pour les règles d’annotation, et le dossier test_examples/ pour des cas variés. Pour contribuer au projet, explorez les modules src/svg_generator/ et RustVizParse/, en commençant par src/svg_generator/README.md.

Étiquettes: RustViz Rust visualisation d'emprunts SVG ownership

Publié le 3 juin à 23h04