1pub fn non_empty_key(raw: Option<String>) -> Option<String> {
8 raw.map(|v| v.trim().to_string()).filter(|v| !v.is_empty())
9}
10
11#[cfg(test)]
12mod tests {
13 use super::non_empty_key;
14
15 #[test]
16 fn unset_key_is_none() {
17 assert_eq!(non_empty_key(None), None);
18 }
19
20 #[test]
21 fn empty_and_whitespace_keys_are_none() {
22 assert_eq!(non_empty_key(Some(String::new())), None);
23 assert_eq!(non_empty_key(Some(" \t ".to_string())), None);
24 }
25
26 #[test]
27 fn surrounding_whitespace_is_trimmed() {
28 assert_eq!(
29 non_empty_key(Some(" sk-ant-123\n".to_string())),
30 Some("sk-ant-123".to_string())
31 );
32 }
33}