pub enum Error {
Sys(UErrorCode),
Wrapper(Error),
}
Expand description
Represents a Unicode error, resulting from operations of low-level ICU libraries.
This is modeled after absl::Status in the Abseil library, which provides ways for users to avoid dealing with all the numerous error codes directly.
Variants§
Sys(UErrorCode)
The error originating in the underlying sys library.
At the moment it is possible to produce an Error which has a zero error code (i.e. no error), because it makes it unnecessary for users to deal with error codes directly. It does make for a bit weird API, so we may turn it around a bit. Ideally, it should not be possible to have an Error that isn’t really an error.
Wrapper(Error)
Errors originating from the wrapper code. For example when pre-converting input into UTF8 for input that happens to be malformed.
Implementations§
Source§impl Error
impl Error
Sourcepub const OK_CODE: UErrorCode = sys::UErrorCode::U_ZERO_ERROR
pub const OK_CODE: UErrorCode = sys::UErrorCode::U_ZERO_ERROR
The error code denoting no error has happened.
Sourcepub fn is_ok(code: UErrorCode) -> bool
pub fn is_ok(code: UErrorCode) -> bool
Returns true if this error code corresponds to no error.
Sourcepub fn ok_or_warning(status: UErrorCode) -> Result<(), Self>
pub fn ok_or_warning(status: UErrorCode) -> Result<(), Self>
Creates a new error from the supplied status. Ok is returned if the error code does not correspond to an error code (as opposed to OK or a warning code).
Sourcepub fn ok_preflight(status: UErrorCode) -> Result<(), Self>
pub fn ok_preflight(status: UErrorCode) -> Result<(), Self>
Creates a new error from the supplied status. Ok is returned if the error code does not constitute an error in preflight mode.
This error check explicitly ignores the buffer overflow error when reporting whether it contains an error condition.
Preflight calls to ICU libraries do a read-only scan of the input to determine the buffer
sizes required on the output in case of conversion calls such as ucal_strFromUTF8
. The
way this call is made is to offer a zero-capacity buffer (which could be pointed to by a
NULL
pointer), and then call the respective function. The function will compute the
buffer size, but will also return a bogus buffer overflow error.
Sourcepub fn is_code(&self, code: UErrorCode) -> bool
pub fn is_code(&self, code: UErrorCode) -> bool
Returns true if this error has the supplied code
.
Sourcepub fn is_err(&self) -> bool
pub fn is_err(&self) -> bool
Returns true if the error is an error, not a warning.
The ICU4C library has error codes for errors and warnings.
Sourcepub fn is_preflight_err(&self) -> bool
pub fn is_preflight_err(&self) -> bool
Return true if there was an error in a preflight call.
This error check explicitly ignores the buffer overflow error when reporting whether it contains an error condition.
Preflight calls to ICU libraries do a read-only scan of the input to determine the buffer
sizes required on the output in case of conversion calls such as ucal_strFromUTF8
. The
way this call is made is to offer a zero-capacity buffer (which could be pointed to by a
NULL
pointer), and then call the respective function. The function will compute the
buffer size, but will also return a bogus buffer overflow error.