guardian_db/ipfs_log/
access_controller.rs1use crate::ipfs_log::identity::Identity;
2use crate::ipfs_log::identity_provider::IdentityProvider;
3
4pub trait LogEntry: Send + Sync {
7 fn get_payload(&self) -> &[u8];
8 fn get_identity(&self) -> &Identity;
9}
10
11pub trait CanAppendAdditionalContext: Send + Sync {
14 fn get_log_entries(&self) -> Vec<Box<dyn LogEntry>>;
15}
16
17pub trait CanAppend {
20 fn can_append(
21 &self,
22 entry: &dyn LogEntry,
23 identity_provider: &dyn IdentityProvider,
24 context: &dyn CanAppendAdditionalContext,
25 ) -> Result<(), Box<dyn std::error::Error>>;
26}