gatekeep_keepsake/
target.rs1use chrono::{DateTime, Utc};
2use gatekeep::{FactId, SubjectSlot};
3use keepsake::{CommandContext, RelationId, RevokeBySubject, SubjectRef};
4
5#[derive(Clone, Debug, PartialEq, Eq)]
7pub struct KeepsakeRelationTarget {
8 pub fact: FactId,
10 pub subject: SubjectRef,
12 pub relation_id: RelationId,
14 pub subject_slot: Option<SubjectSlot>,
16}
17
18impl KeepsakeRelationTarget {
19 #[must_use]
21 pub fn revoke_by_subject(&self, at: DateTime<Utc>, context: CommandContext) -> RevokeBySubject {
22 RevokeBySubject::new(self.subject.clone(), self.relation_id, at, context)
23 }
24}