2023-06-10 22:30:36 +00:00
|
|
|
use std::{error::Error, ops::Range};
|
|
|
|
|
|
|
|
pub fn validate_optional_length<E: Error>(
|
|
|
|
opt: &Option<String>,
|
|
|
|
len_range: Range<usize>,
|
|
|
|
err: E,
|
|
|
|
) -> Result<Option<String>, E> {
|
|
|
|
if let Some(opt) = opt {
|
|
|
|
let opt = opt.trim();
|
|
|
|
if !len_range.contains(&opt.len()) {
|
|
|
|
Err(err)
|
|
|
|
} else {
|
|
|
|
Ok(Some(opt.to_string()))
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
Ok(None)
|
|
|
|
}
|
2023-05-29 00:55:16 +00:00
|
|
|
}
|