(s: &str)
| 101 | type Err = String; |
| 102 | |
| 103 | fn from_str(s: &str) -> Result<KeyValueArg<K, V>, String> { |
| 104 | let mut parts = s.splitn(2, '='); |
| 105 | let key = parts.next().expect("always one part"); |
| 106 | let value = parts |
| 107 | .next() |
| 108 | .ok_or_else(|| "must have format KEY=VALUE".to_string())?; |
| 109 | Ok(KeyValueArg { |
| 110 | key: key.parse().map_err(|e| format!("parsing key: {}", e))?, |
| 111 | value: value.parse().map_err(|e| format!("parsing value: {}", e))?, |
| 112 | }) |
| 113 | } |
| 114 | } |
| 115 | |
| 116 | /// A command-line argument that defaults to `true` |