/* This Source Code Form is subject to the terms of the Mozilla Public *License,v.2.0.IfacopyoftheMPLwasnotdistributedwiththis
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
mod macros;
#[cfg(feature = "backtrace")] /// Re-export of the `backtrace` crate for use in macros and /// to ensure the needed version is kept in sync in dependents. pubuse backtrace;
#[cfg(not(feature = "backtrace"))] /// A compatibility shim for `backtrace`. pubmod backtrace { use std::fmt;
mod reporting; pubuse reporting::{
report_breadcrumb, report_error_to_app, set_application_error_reporter,
unset_application_error_reporter, ApplicationErrorReporter,
};
pubuse error_support_macros::handle_error;
mod handling; pubuse handling::{convert_log_report_error, ErrorHandling, ErrorReporting, GetErrorHandling};
/// XXX - Most of this is now considered deprecated - only FxA uses it, and /// should be replaced with the facilities in the `handling` module. /// /// Define a wrapper around the the provided ErrorKind type. /// See also `define_error` which is more likely to be what you want. #[macro_export]
macro_rules! define_error_wrapper {
($Kind:ty) => { pubtype Result<T, E = Error> = std::result::Result<T, E>; struct ErrorData {
kind: $Kind,
backtrace: Option<std::sync::Mutex<$crate::backtrace::Backtrace>>,
}
impl From<$Kind> for Error { // Cold to optimize in favor of non-error cases. #[cold] fn from(ctx: $Kind) -> Error {
Error(Box::new(ErrorData::new(ctx)))
}
}
};
}
/// Define a set of conversions from external error types into the provided /// error kind. Use `define_error` to do this at the same time as /// `define_error_wrapper`. #[macro_export]
macro_rules! define_error_conversions {
($Kind:ident { $(($variant:ident, $type:ty)),* $(,)? }) => ($( impl From<$type> for Error { // Cold to optimize in favor of non-error cases. #[cold] fn from(e: $type) -> Self {
Error::from($Kind::$variant(e))
}
}
)*);
}
/// All the error boilerplate (okay, with a couple exceptions in some cases) in /// one place. #[macro_export]
macro_rules! define_error {
($Kind:ident { $(($variant:ident, $type:ty)),* $(,)? }) => {
$crate::define_error_wrapper!($Kind);
$crate::define_error_conversions! {
$Kind {
$(($variant, $type)),*
}
}
};
}
uniffi::include_scaffolding!("errorsupport");
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-06-18)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.