Load an immutable session manifest by content hash.
(
&self,
hash: &crate::types::Hash,
)
| 659 | |
| 660 | /// Load an immutable session manifest by content hash. |
| 661 | pub fn get_session_manifest( |
| 662 | &self, |
| 663 | hash: &crate::types::Hash, |
| 664 | ) -> PristineResult<Option<crate::change::session::SessionManifest>> { |
| 665 | use crate::change::session::SessionManifest; |
| 666 | |
| 667 | let table = self.txn.open_table(SESSION_MANIFESTS)?; |
| 668 | match table.get(hash.as_bytes())? { |
| 669 | Some(value) => SessionManifest::from_bytes(value.value()) |
| 670 | .map(Some) |
| 671 | .map_err(|e| PristineError::Serialization { |
| 672 | message: format!("session manifest decode: {}", e), |
| 673 | }), |
| 674 | None => Ok(None), |
| 675 | } |
| 676 | } |
| 677 | |
| 678 | /// Resolve the latest manifest hash for an external session ID. |
| 679 | pub fn get_session_head(&self, session_id: &str) -> PristineResult<Option<crate::types::Hash>> { |