p2panda_encryption/traits/
mod.rs1use std::fmt::Debug;
6use std::hash::Hash as StdHash;
7
8mod dgm;
9mod key_bundle;
10mod key_manager;
11mod key_registry;
12mod message;
13mod ordering;
14
15#[cfg(any(test, feature = "message_scheme"))]
16pub use dgm::AckedGroupMembership;
17#[cfg(any(test, feature = "data_scheme"))]
18pub use dgm::GroupMembership;
19pub use key_bundle::KeyBundle;
20pub use key_manager::{IdentityManager, PreKeyManager};
21pub use key_registry::{IdentityRegistry, PreKeyRegistry};
22#[cfg(any(test, feature = "message_scheme"))]
23pub use message::{ForwardSecureGroupMessage, ForwardSecureMessageContent};
24#[cfg(any(test, feature = "data_scheme"))]
25pub use message::{GroupMessage, GroupMessageContent};
26#[cfg(any(test, feature = "message_scheme"))]
27pub use ordering::ForwardSecureOrdering;
28#[cfg(any(test, feature = "data_scheme"))]
29pub use ordering::Ordering;
30
31pub trait IdentityHandle: Copy + Debug + PartialEq + Eq + StdHash {}
36
37impl IdentityHandle for p2panda_core::VerifyingKey {}
38
39#[cfg(any(test, feature = "test_utils"))]
40impl IdentityHandle for &str {}
41
42#[cfg(any(test, feature = "test_utils"))]
43impl IdentityHandle for usize {}
44
45pub trait OperationId: Copy + Debug + PartialEq + Eq + StdHash {}
51
52impl OperationId for p2panda_core::Hash {}
53
54#[cfg(any(test, feature = "test_utils"))]
55impl OperationId for (usize, usize) {} #[cfg(any(test, feature = "test_utils"))]
58impl OperationId for usize {}