commit 7bf37f15019af8c7ee6158edea84c8e696f745c0
parent eac72d974c47c02b79803145c10acdf3344423a8
Author: triesap <triesap@radroots.dev>
Date: Mon, 19 Jan 2026 07:30:04 +0000
app-utils: add resolve error helper
- add is_error helper for resolve results
- export is_error from utils crate
- add unit test for error detection
- keep resolve helpers consistent
Diffstat:
2 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/crates/utils/src/lib.rs b/crates/utils/src/lib.rs
@@ -50,9 +50,9 @@ pub use path::{
pub use text::{str_cap, str_cap_words, text_dec, text_enc, ROOT_SYMBOL};
pub use time::{time_now_ms, time_now_s};
pub use types::{
- resolve_err, resolve_ok, FileBytesFormat, FilePath, FilePathBlob, FileMimeType, IdbClientConfig,
- ResolveError, ResultBool, ResultId, ResultObj, ResultPass, ResultPublicKey, ResultSecretKey,
- ResultsList, ValidationRegex, ValStr, WebFilePath,
+ is_error, resolve_err, resolve_ok, FileBytesFormat, FilePath, FilePathBlob, FileMimeType,
+ IdbClientConfig, ResolveError, ResultBool, ResultId, ResultObj, ResultPass, ResultPublicKey,
+ ResultSecretKey, ResultsList, ValidationRegex, ValStr, WebFilePath,
};
pub use unit::{
mass_to_g, parse_area_unit, parse_area_unit_default, parse_mass_unit, parse_mass_unit_default,
diff --git a/crates/utils/src/types.rs b/crates/utils/src/types.rs
@@ -94,12 +94,16 @@ pub fn resolve_err<T>(err: RadrootsAppUtilsError) -> ResolveError<T> {
Err(err)
}
+pub fn is_error<T>(value: &ResolveError<T>) -> bool {
+ value.is_err()
+}
+
#[cfg(test)]
mod tests {
use super::{
resolve_err, resolve_ok, FileBytesFormat, FilePath, FilePathBlob, IdbClientConfig,
- ResultBool, ResultId, ResultObj, ResultPass, ResultPublicKey, ResultSecretKey, ResultsList,
- ValidationRegex, ValStr, WebFilePath,
+ is_error, ResultBool, ResultId, ResultObj, ResultPass, ResultPublicKey, ResultSecretKey,
+ ResultsList, ValidationRegex, ValStr, WebFilePath,
};
use crate::error::RadrootsAppUtilsError;
use regex::Regex;
@@ -179,6 +183,14 @@ mod tests {
}
#[test]
+ fn is_error_returns_true_for_err() {
+ let ok = resolve_ok(1);
+ assert!(!is_error(&ok));
+ let err = resolve_err::<()>(RadrootsAppUtilsError::InvalidInput);
+ assert!(is_error(&err));
+ }
+
+ #[test]
fn validation_regex_tracks_patterns() {
let regex = Regex::new("^a+$").expect("regex");
let value = Box::leak(Box::new(regex));