Ir para o conteúdo
Erros do Compilador RustErro
E0308

E0308 — Tipo de Result Incompatível

A função retorna um Result com o tipo Ok ou Err incorreto.

rustcargo

O que causa este erro

O tipo de retorno é Result<T, E>, mas o valor retornado tem um tipo T ou E diferente. O operador ? pode estar convertendo entre tipos de erro incompatíveis.

Como corrigir

Certifique-se de que os tipos Ok e Err correspondam à assinatura da função. Implemente From<ErrorType> para seu tipo de erro a fim de habilitar a conversão pelo operador ?. Use .map_err() para converter tipos de erro. Use um crate como anyhow ou thiserror para tratamento de erros ergonômico.

Exemplo

fn foo() -> Result<(), String> {
  Ok(42) // expected ()
}
Documentação Oficial

Códigos de Erro Relacionados