(&self, txn: &mut TransactionMut, id: &str)
| 347 | } |
| 348 | |
| 349 | fn upsert<V>(&self, txn: &mut TransactionMut, id: &str) -> V |
| 350 | where |
| 351 | V: DefaultPrelim + TryFrom<Out>, |
| 352 | { |
| 353 | match self.index_by_id(txn, id) { |
| 354 | None => self.push_back(txn, V::default_prelim()), |
| 355 | Some(i) => { |
| 356 | let out = self.get(txn, i).unwrap(); |
| 357 | match V::try_from(out) { |
| 358 | Ok(shared_ref) => shared_ref, |
| 359 | Err(_) => { |
| 360 | self.remove(txn, i); |
| 361 | self.push_back(txn, V::default_prelim()) |
| 362 | }, |
| 363 | } |
| 364 | }, |
| 365 | } |
| 366 | } |
| 367 | } |
| 368 | |
| 369 | impl<T> ArrayExt for T where T: Array {} |
no test coverage detected