(&self, table_name: &str, key: &Key)
| 547 | } |
| 548 | |
| 549 | async fn fetch_data(&self, table_name: &str, key: &Key) -> Result<Option<DataRow>> { |
| 550 | if self.is_virtual_table(table_name) { |
| 551 | let rows = match table_name { |
| 552 | "jhistory" | "codex_history" => self.scan_jhistory()?, |
| 553 | "transcripts" => self.scan_transcripts()?, |
| 554 | "sessions" => self.scan_sessions()?, |
| 555 | "todos" => self.scan_todos()?, |
| 556 | _ => return Ok(None), |
| 557 | }; |
| 558 | |
| 559 | for (k, row) in rows { |
| 560 | if &k == key { |
| 561 | return Ok(Some(row)); |
| 562 | } |
| 563 | } |
| 564 | Ok(None) |
| 565 | } else { |
| 566 | self.json_storage.fetch_data(table_name, key).await |
| 567 | } |
| 568 | } |
| 569 | |
| 570 | async fn scan_data(&self, table_name: &str) -> Result<RowIter<'_>> { |
| 571 | if self.is_virtual_table(table_name) { |
nothing calls this directly
no test coverage detected