(&self, path: &str, chunk_idx: u32)
| 1114 | |
| 1115 | impl EmbeddingsTxnT for ReadTxn { |
| 1116 | fn get_embedding(&self, path: &str, chunk_idx: u32) -> PristineResult<Option<EmbeddingRecord>> { |
| 1117 | let table = match self.txn.open_table(EMBEDDINGS) { |
| 1118 | Ok(table) => table, |
| 1119 | Err(redb::TableError::TableDoesNotExist(_)) => return Ok(None), |
| 1120 | Err(e) => return Err(PristineError::from(e)), |
| 1121 | }; |
| 1122 | |
| 1123 | let key = encode_embedding_key(path, chunk_idx); |
| 1124 | let result = match table.get(key.as_str())? { |
| 1125 | Some(guard) => { |
| 1126 | let bytes = guard.value(); |
| 1127 | let record: EmbeddingRecord = |
| 1128 | postcard::from_bytes(bytes).map_err(|e| PristineError::Serialization { |
| 1129 | message: format!( |
| 1130 | "failed to deserialize EmbeddingRecord at '{}': {}", |
| 1131 | key, e |
| 1132 | ), |
| 1133 | })?; |
| 1134 | Ok(Some(record)) |
| 1135 | } |
| 1136 | None => Ok(None), |
| 1137 | }; |
| 1138 | result |
| 1139 | } |
| 1140 | |
| 1141 | fn list_embeddings(&self, path: &str) -> PristineResult<Vec<(u32, EmbeddingRecord)>> { |
| 1142 | let table = match self.txn.open_table(EMBEDDINGS) { |
no test coverage detected