use crate::{Error, FromErrorDetail, Result};
pub fn get_duplicates_from_result<T, R: FromErrorDetail>(res: &Result<T>) -> Option<Vec<R>> {
match res {
Ok(_) => None,
Err(e) => match &e {
Error::Conflict(c) => c.duplicated.as_ref().map(|dup| dup.get_values().collect()),
_ => None,
},
}
}
pub fn get_missing_from_result<T, R: FromErrorDetail>(res: &Result<T>) -> Option<Vec<R>> {
match res {
Ok(_) => None,
Err(e) => match &e {
Error::BadRequest(c) => c.missing.as_ref().map(|mis| mis.get_values().collect()),
Error::NotFound(c) => c.missing.as_ref().map(|mis| mis.get_values().collect()),
_ => None,
},
}
}