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
deResult<T, E>
pode ser:- Retornado via parĂąmetros de saĂda (por exemplo, via
&mut T
). Isso requer queT
possa ser passado pela fronteira FFI - por exemplo,T
tem que ser:- Um tipo primitivo (como
u32
ouusize
) - Um tipo suportado nativamente por
cxx
(comoUniquePtr<T>
) que tem um valor padrĂŁo adequado para usar em um caso de falha (ao contrĂĄrio deBox<T>
).
- Um tipo primitivo (como
- 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 emUniquePtr<T>
.
- Retornado via parĂąmetros de saĂda (por exemplo, via
-
A parte
E
deResult<T, E>
pode ser:- Retornado como um booleano (por exemplo,
true
representando sucesso efalse
representando falha) - A preservação dos detalhes do erro Ă© teoricamente possĂvel, mas atĂ© agora nĂŁo foi necessĂĄria na prĂĄtica.
- Retornado como um booleano (por exemplo,