pub(crate) fn non_empty_owned(value: Option<&String>) -> Option { value .map(String::as_str) .map(str::trim) .filter(|value| !value.is_empty()) .map(str::to_string) }