
Serde y serialización
serde traits, derive macros, JSON/YAML/TOML, (de)serialización personalizada, lifetimes con Cow, rendimiento
1¿Cuál es el rol principal de la crate serde en Rust?
¿Cuál es el rol principal de la crate serde en Rust?
Respuesta
Serde es un framework de serialización y deserialización genérico para Rust. Su nombre proviene de "SERialize DEserialize". Permite convertir estructuras de datos Rust hacia y desde diferentes formatos de datos (JSON, YAML, TOML, etc.) de manera eficiente y type-safe. Serde utiliza el sistema de traits de Rust para proporcionar una abstracción sin coste en runtime.
2¿Cuál es la sintaxis correcta para habilitar la serialización automática en una struct con serde?
¿Cuál es la sintaxis correcta para habilitar la serialización automática en una struct con serde?
Respuesta
El atributo #[derive(Serialize, Deserialize)] genera automáticamente las implementaciones de los traits Serialize y Deserialize para una struct. Esta macro procedural analiza la estructura de los campos y genera el código necesario en tiempo de compilación. Es necesario importar los traits desde serde con use serde::{Serialize, Deserialize}.
3¿Qué función utilizar para convertir una struct Rust en una cadena JSON con serde_json?
¿Qué función utilizar para convertir una struct Rust en una cadena JSON con serde_json?
Respuesta
La función serde_json::to_string() convierte un valor que implementa Serialize en una cadena JSON. Retorna un Result<String, Error> porque la serialización puede fallar en ciertos casos. Para una salida formateada con indentación, usa serde_json::to_string_pretty(). Para escribir directamente en un Writer, usa serde_json::to_writer().
¿Cómo deserializar una cadena JSON hacia una struct Rust con serde_json?
¿Qué atributo de serde utilizar para renombrar un campo durante la serialización?
+17 preguntas de entrevista
Otros temas de entrevista Rust
Fundamentos de Rust
Ownership & Borrowing
Structs & Enums
Manejo de errores
Colecciones
Módulos y Paquetes
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Macros
Unsafe Rust
Traits avanzados
Lifetimes Avanzados
Type System
Tokio & Async I/O
Optimización de Rendimiento
Memory Management
Web Frameworks
Database Integration
Patrones de diseño en Rust
Domina Rust para tu próxima entrevista
Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.
Empieza gratis