use super::*;
use holochain_integrity_types::{CapClaimEntry, CapGrantEntry};
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum OpEntry<ET>
where
ET: UnitEnum,
{
CreateEntry {
app_entry: ET,
action: Create,
},
CreateAgent {
agent: AgentPubKey,
action: Create,
},
UpdateEntry {
original_action_hash: ActionHash,
original_entry_hash: EntryHash,
app_entry: ET,
action: Update,
},
UpdateAgent {
new_key: AgentPubKey,
original_key: AgentPubKey,
original_action_hash: ActionHash,
action: Update,
},
CreateCapGrant {
entry: CapGrantEntry,
action: Create,
},
CreateCapClaim {
entry: CapClaimEntry,
action: Create,
},
UpdateCapGrant {
original_action_hash: ActionHash,
original_entry_hash: EntryHash,
action: Update,
entry: CapGrantEntry,
},
UpdateCapClaim {
original_action_hash: ActionHash,
original_entry_hash: EntryHash,
action: Update,
entry: CapClaimEntry,
},
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum OpUpdate<ET>
where
ET: UnitEnum,
{
Entry {
app_entry: ET,
action: Update,
},
PrivateEntry {
original_action_hash: ActionHash,
app_entry_type: <ET as UnitEnum>::Unit,
action: Update,
},
Agent {
new_key: AgentPubKey,
original_key: AgentPubKey,
original_action_hash: ActionHash,
action: Update,
},
CapClaim {
original_action_hash: ActionHash,
action: Update,
},
CapGrant {
original_action_hash: ActionHash,
action: Update,
},
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct OpDelete {
pub action: Delete,
}