Rust

Serde & Serialization

serde traits, derive macros, JSON/YAML/TOML, custom (de)serialization, lifetimes avec Cow, performance

20 questions d'entretien·
Confirmé
1

Quel est le rôle principal de la crate serde en Rust ?

Réponse

Serde est un framework de sérialisation et désérialisation générique pour Rust. Son nom vient de "SERialize DEserialize". Il permet de convertir des structures de données Rust vers et depuis différents formats de données (JSON, YAML, TOML, etc.) de manière efficace et type-safe. Serde utilise le système de traits de Rust pour fournir une abstraction sans coût runtime.

2

Quelle est la syntaxe correcte pour activer la sérialisation automatique sur une struct avec serde ?

Réponse

L'attribut #[derive(Serialize, Deserialize)] permet de générer automatiquement les implémentations des traits Serialize et Deserialize pour une struct. Cette macro procédurale analyse la structure des champs et génère le code nécessaire à la compilation. Il est nécessaire d'importer les traits depuis serde avec use serde::{Serialize, Deserialize}.

3

Quelle fonction utiliser pour convertir une struct Rust en chaîne JSON avec serde_json ?

Réponse

La fonction serde_json::to_string() convertit une valeur implémentant Serialize en une chaîne JSON. Elle retourne un Result<String, Error> car la sérialisation peut échouer dans certains cas. Pour une sortie formatée avec indentation, utiliser serde_json::to_string_pretty(). Pour écrire directement dans un Writer, utiliser serde_json::to_writer().

4

Comment désérialiser une chaîne JSON vers une struct Rust avec serde_json ?

5

Quel attribut serde utiliser pour renommer un champ lors de la sérialisation ?

+17 questions d'entretien

Maîtrise Rust pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement