Manejo de Errores en CXX
La compatibilidad con Result<T,E> de CXX se basa en excepciones de C++, por lo que no podemos usarlo en Chromium. Alternativas:
-
La parte
TdeResult<T, E>puede:- Devolverse a través de parámetros externos (por ejemplo, mediante
&mut T). Esto requiere queTse pueda transferir a través del límite de FFI. Por ejemplo,Ttiene que ser:- Un tipo primitivo (como
u32ousize). - Un tipo compatible de forma nativa con
cxx(comoUniquePtr<T>) que tiene un valor predeterminado adecuado para usarlo en caso de fallo (a diferencia deBox<T>).
- Un tipo primitivo (como
- Mantenerse en el lado de Rust y mostrarse mediante referencia. Esto puede ser necesario cuando
Tes un tipo de Rust, que no se puede transmitir mediante el límite de FFI ni se puede almacenar enUniquePtr<T>.
- Devolverse a través de parámetros externos (por ejemplo, mediante
-
La parte
EdeResult<T, E>puede:- Devolverse como un valor booleano (por ejemplo,
truerepresenta el éxito yfalserepresenta el error). - En teoría, es posible conservar los detalles de los errores, pero hasta ahora no se ha necesitado en la práctica.
- Devolverse como un valor booleano (por ejemplo,