1#[inline]
4pub fn parse_pairs(pairs: &str, separator: char) -> Option<(&str, &str)> {
5 pairs
6 .split_once(separator)
7 .map(|(key, value)| (key.trim(), value.trim()))
8}
9
10#[cfg(test)]
11mod tests {
12 use super::*;
13
14 #[test]
15 fn should_split_defines_by_equal_happy_path() {
16 assert_eq!(parse_pairs("foo=bar", '='), Some(("foo", "bar")));
17 assert_eq!(parse_pairs("foo =bar", '='), Some(("foo", "bar")));
18 assert_eq!(parse_pairs("foo = bar", '='), Some(("foo", "bar")));
19 assert_eq!(parse_pairs("foo= bar", '='), Some(("foo", "bar")));
20 assert_eq!(parse_pairs("foo: bar", ':'), Some(("foo", "bar")));
21 }
22
23 #[test]
24 fn should_split_defines_by_equal_unhappy_path() {
25 assert_eq!(
26 parse_pairs("baz=123324+adf+=vasdf", '='),
27 Some(("baz", "123324+adf+=vasdf"))
28 );
29 }
30
31 #[test]
32 fn should_not_split_defines_if_no_equal_is_contained() {
33 assert_eq!(parse_pairs("foo", '='), None);
34 assert_eq!(parse_pairs("baz=", '='), Some(("baz", "")));
35 }
36}