Tratamento de Erros do CXX

O suporte do CXX para Result<T,E> depende de exceçÔes C++, portanto, não podemos uså-lo no Chromium. Alternativas:

  • A parte T de Result<T, E> pode ser:

    • Retornado via parĂąmetros de saĂ­da (por exemplo, via &mut T). Isso requer que T possa ser passado pela fronteira FFI - por exemplo, T tem que ser:
      • Um tipo primitivo (como u32 ou usize)
      • Um tipo suportado nativamente por cxx (como UniquePtr<T>) que tem um valor padrĂŁo adequado para usar em um caso de falha (ao contrĂĄrio de Box<T>).
    • Mantido no lado Rust e exposto por referĂȘncia. Isso pode ser necessĂĄrio quando T Ă© um tipo Rust, que nĂŁo pode ser passado pela fronteira FFI e nĂŁo pode ser armazenado em UniquePtr<T>.
  • A parte E de Result<T, E> pode ser:

    • Retornado como um booleano (por exemplo, true representando sucesso e false representando falha)
    • A preservação dos detalhes do erro Ă© teoricamente possĂ­vel, mas atĂ© agora nĂŁo foi necessĂĄria na prĂĄtica.