Struct icu_provider::DataError
source · #[non_exhaustive]pub struct DataError {
pub kind: DataErrorKind,
pub marker_path: Option<DataMarkerPath>,
pub str_context: Option<&'static str>,
pub silent: bool,
}
Expand description
The error type for ICU4X data provider operations.
To create one of these, either start with a DataErrorKind
or use DataError::custom()
.
§Example
Create a IdentifierNotFound error and attach a data request for context:
let marker: DataMarkerInfo = unimplemented!();
let req: DataRequest = unimplemented!();
DataErrorKind::IdentifierNotFound.with_req(marker, req);
Create a named custom error:
DataError::custom("This is an example error");
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.kind: DataErrorKind
Broad category of the error.
marker_path: Option<DataMarkerPath>
The data marker of the request, if available.
str_context: Option<&'static str>
Additional context, if available.
silent: bool
Whether this error was created in silent mode to not log.
Implementations§
source§impl DataError
impl DataError
sourcepub const fn custom(str_context: &'static str) -> Self
pub const fn custom(str_context: &'static str) -> Self
Returns a new, empty DataError with kind Custom and a string error message.
sourcepub const fn with_marker(self, marker: DataMarkerInfo) -> Self
pub const fn with_marker(self, marker: DataMarkerInfo) -> Self
Sets the data marker of a DataError, returning a modified error.
sourcepub const fn with_str_context(self, context: &'static str) -> Self
pub const fn with_str_context(self, context: &'static str) -> Self
Sets the string context of a DataError, returning a modified error.
sourcepub fn with_type_context<T>(self) -> Self
pub fn with_type_context<T>(self) -> Self
Sets the string context of a DataError to the given type name, returning a modified error.
sourcepub fn with_req(self, marker: DataMarkerInfo, req: DataRequest<'_>) -> Self
pub fn with_req(self, marker: DataMarkerInfo, req: DataRequest<'_>) -> Self
Logs the data error with the given request, returning an error containing the data marker.
If the “logging” Cargo feature is enabled, this logs the whole request. Either way, it returns an error with the data marker portion of the request as context.
sourcepub fn with_path_context(self, _path: &Path) -> Self
pub fn with_path_context(self, _path: &Path) -> Self
Logs the data error with the given context, then return self.
This does not modify the error, but if the “logging” Cargo feature is enabled, it will print out the context.
sourcepub fn with_display_context<D: Display + ?Sized>(self, context: &D) -> Self
pub fn with_display_context<D: Display + ?Sized>(self, context: &D) -> Self
Logs the data error with the given context, then return self.
This does not modify the error, but if the “logging” Cargo feature is enabled, it will print out the context.
sourcepub fn with_debug_context<D: Debug + ?Sized>(self, context: &D) -> Self
pub fn with_debug_context<D: Debug + ?Sized>(self, context: &D) -> Self
Logs the data error with the given context, then return self.
This does not modify the error, but if the “logging” Cargo feature is enabled, it will print out the context.
Trait Implementations§
source§impl Error for DataError
impl Error for DataError
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
impl Copy for DataError
impl Eq for DataError
impl StructuralPartialEq for DataError
Auto Trait Implementations§
impl Freeze for DataError
impl RefUnwindSafe for DataError
impl Send for DataError
impl Sync for DataError
impl Unpin for DataError
impl UnwindSafe for DataError
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more