
Serde e serialização
serde traits, derive macros, JSON/YAML/TOML, (de)serialização personalizada, lifetimes com Cow, performance
1Qual é o papel principal da crate serde em Rust?
Qual é o papel principal da crate serde em Rust?
Resposta
Serde é um framework de serialização e desserialização genérico para Rust. Seu nome vem de "SERialize DEserialize". Ele permite converter estruturas de dados Rust de e para diferentes formatos de dados (JSON, YAML, TOML, etc.) de forma eficiente e type-safe. Serde usa o sistema de traits do Rust para fornecer uma abstração sem custo em runtime.
2Qual é a sintaxe correta para habilitar a serialização automática em uma struct com serde?
Qual é a sintaxe correta para habilitar a serialização automática em uma struct com serde?
Resposta
O atributo #[derive(Serialize, Deserialize)] gera automaticamente as implementações dos traits Serialize e Deserialize para uma struct. Essa macro procedural analisa a estrutura dos campos e gera o código necessário em tempo de compilação. É necessário importar os traits do serde com use serde::{Serialize, Deserialize}.
3Qual função usar para converter uma struct Rust em uma string JSON com serde_json?
Qual função usar para converter uma struct Rust em uma string JSON com serde_json?
Resposta
A função serde_json::to_string() converte um valor que implementa Serialize em uma string JSON. Ela retorna um Result<String, Error> porque a serialização pode falhar em certos casos. Para uma saída formatada com indentação, use serde_json::to_string_pretty(). Para escrever diretamente em um Writer, use serde_json::to_writer().
Como desserializar uma string JSON em uma struct Rust com serde_json?
Qual atributo do serde usar para renomear um campo durante a serialização?
+17 perguntas de entrevista
Outros temas de entrevista Rust
Fundamentos de Rust
Ownership & Borrowing
Structs & Enums
Tratamento de erros
Coleções
Módulos e Pacotes
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Macros
Unsafe Rust
Traits avançados
Lifetimes Avançados
Type System
Tokio & Async I/O
Otimização de Desempenho
Memory Management
Web Frameworks
Database Integration
Padrões de design em Rust
Domine Rust para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis