Skip to main content

cloud_sdk/operation/permit/
execution_error.rs

1use core::fmt;
2
3use super::PermitDisposition;
4
5/// Prepared execution failure plus the fail-closed permit disposition.
6pub struct PermitExecutionError<E> {
7    pub(crate) execution: super::super::PreparedExecutionError<E>,
8    pub(crate) disposition: PermitDisposition,
9}
10
11impl<E> PermitExecutionError<E> {
12    /// Returns the underlying payload-redacting execution failure.
13    #[must_use]
14    pub const fn execution(&self) -> &super::super::PreparedExecutionError<E> {
15        &self.execution
16    }
17
18    /// Returns the recovery or reconciliation disposition.
19    #[must_use]
20    pub const fn disposition(&self) -> PermitDisposition {
21        self.disposition
22    }
23}
24
25impl<E> fmt::Debug for PermitExecutionError<E> {
26    fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
27        formatter
28            .debug_struct("PermitExecutionError")
29            .field("execution", &"[redacted]")
30            .field("disposition", &self.disposition)
31            .finish()
32    }
33}
34
35impl<E> fmt::Display for PermitExecutionError<E> {
36    fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
37        formatter.write_str("permit-authorized request execution failed")
38    }
39}
40
41impl<E> core::error::Error for PermitExecutionError<E> {}