(coords: &[i64])
| 269 | } |
| 270 | |
| 271 | fn make_dict(coords: &[i64]) -> DimDict { |
| 272 | let mut d = DimDict { |
| 273 | values: vec![], |
| 274 | indices: vec![], |
| 275 | }; |
| 276 | for &c in coords { |
| 277 | let cv = CoordValue::Int64(c); |
| 278 | if let Some(idx) = d.values.iter().position(|x| x == &cv) { |
| 279 | d.indices.push(idx as u32); |
| 280 | } else { |
| 281 | d.indices.push(d.values.len() as u32); |
| 282 | d.values.push(cv); |
| 283 | } |
| 284 | } |
| 285 | d |
| 286 | } |
| 287 | |
| 288 | #[test] |
| 289 | fn empty_dict_roundtrip() { |