مدیریت خطا CXX
CXX پشتیبانی از Result<T,E> به C++ exception متکی است، بنابراین نمیتوانیم از آن در Chromium استفاده کنیم. جایگزینهای آن عبارتند از:
-
قسمت
Tازنتیجه<T، E>می تواند باشد:- از طریق پارامترهای خارجی (به عنوان مثال از طریق
&mut T) برگردانده شده است. این مستلزم آن است کهTبتواند از مرز FFI عبور کند - برای مثالTباید باشد:- یک type اولیه (مانند
u32یاusize) - تایپی که به طور native توسط
cxxپشتیبانی میشود (مانندUniquePtr<T>) که دارای یک مقدار پیشفرض مناسب برای استفاده در موارد خرابی است (unlikeBox<T>).
- یک type اولیه (مانند
- در سمت Rust حفظ شده و از طریق مرجع در معرض دید قرار گرفته است. این کار ممکن است زمانی مورد نیاز باشد که
Tیک تایپ Rust است که نمیتواند از مرز FFI عبور کند و نمی تواند درUniquePtr<T>ذخیره شود.
- از طریق پارامترهای خارجی (به عنوان مثال از طریق
-
قسمت
EازResult<T, E>میتواند باشد:- بهعنوان یک boolean برگردانده میشود (مثلاً
trueنشاندهنده موفقیت وfalseنشاندهنده یک شکست است) - حفظ جزئیات خطا در تئوری امکان پذیر است، اما تاکنون در عمل مورد نیاز نبوده است.
- بهعنوان یک boolean برگردانده میشود (مثلاً