gatekeep_keepsake/
error.rs1use gatekeep::{FactId, GatekeepError, SubjectSlot};
2use keepsake::KeepsakeError;
3use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum KeepsakeResolveError<E> {
8 #[error(transparent)]
10 Subject(#[from] KeepsakeError),
11 #[error("keepsake relation source failed")]
13 Source(#[source] E),
14 #[error(transparent)]
16 Gatekeep(#[from] GatekeepError),
17}
18
19#[derive(Debug, Error, Clone, PartialEq, Eq)]
21pub enum KeepsakeTargetError {
22 #[error("no keepsake binding configured for fact {fact}")]
24 MissingBinding {
25 fact: FactId,
27 },
28
29 #[error("context is missing subject slot {slot} for fact {fact}")]
31 MissingSubjectSlot {
32 fact: FactId,
34 slot: SubjectSlot,
36 },
37
38 #[error("keepsake subject validation failed for fact {fact}")]
40 Subject {
41 fact: FactId,
43 #[source]
45 source: KeepsakeError,
46 },
47}