1use serde::{Deserialize, Serialize};
6
7#[derive(Debug, PartialEq, Clone, Copy, Serialize, Deserialize, Default)]
11pub struct ContentId {
12 pub user_id: i32,
16 pub sub_id: i32,
20}
21
22impl Eq for ContentId {}
23
24impl std::hash::Hash for ContentId {
25 #[inline(always)]
26 fn hash<H: std::hash::Hasher>(&self, state: &mut H) {
27 self.user_id.hash(state);
28 self.sub_id.hash(state);
29 }
30}
31
32#[cfg(feature = "ffi")]
33mod ffi {
34 use lotus_script_sys::{FfiObject, FromFfi};
35
36 impl FromFfi for crate::content::ContentId {
37 type FfiType = u64;
38 fn from_ffi(ffi: Self::FfiType) -> Self {
39 FfiObject::from_packed(ffi).deserialize()
40 }
41 }
42}