libsignal_protocol/
session_record.rs1use crate::{raw_ptr::Raw, ContextInner, SessionState};
2use std::rc::Rc;
3
4#[derive(Debug, Clone)]
6pub struct SessionRecord {
7 pub(crate) raw: Raw<sys::session_record>,
8 pub(crate) ctx: Rc<ContextInner>,
9}
10
11impl SessionRecord {
12 pub fn state(&self) -> SessionState {
14 unsafe {
15 let raw = sys::session_record_get_state(self.raw.as_ptr());
16 assert!(!raw.is_null());
17 SessionState {
18 raw: Raw::copied_from(raw),
19 _ctx: Rc::clone(&self.ctx),
20 }
21 }
22 }
23}
24
25impl_serializable!(
26 SessionRecord,
27 session_record_serialize,
28 session_record_deserialize
29);