Avatar ·

Como acessar valores de enum em Rust? Analisando match, if let e outras formas

Olá a todos! Comecei a estudar Rust recentemente e me deparei com um problema ao trabalhar com enums. Criei um enum simples para representar o status de um pedido:\n\n```rust\nenum OrderStatus {\n Pending,\n Processing,\n Shipped(String),\n Delivered { date: String, signature: bool },\n}\n```\n\nMas não entendo como extrair dados das variantes. Por exemplo, quando o status é `Shipped`, preciso obter o número de rastreamento (`String`). Quando é `Delivered` — a data e a assinatura. Simplesmente escrever `order_status.tracking_number` não funciona — o compilador reclama.\n\nTentei usar `match`, mas constantemente me confundo com a sintaxe e recebo erros como "expected enum, found &str". Na documentação fala sobre `if let` e `unwrap`, mas não entendo quando usar cada um. Por favor, me digam qual é a forma correta