pub enum IngestOutcome {
UnknownSource {
source: String,
},
SecretMissing,
InvalidSignature,
SpoolFailed {
reason: String,
},
Accepted {
delivery_id: String,
relay: RelayOutcome,
bookkeeping_error: Option<String>,
},
}Expand description
Result of one ingress attempt, before it becomes an HTTP response.
Why: keeping the decision separate from axum lets every arm — including the
two that must never produce a 202 — be asserted directly, without a router.
What: one variant per outcome the ADR distinguishes.
Test: the ingest_* cases in tests.rs.
Variants§
UnknownSource
{source} names no configured target.
SecretMissing
No secret is configured. Fail closed.
InvalidSignature
A secret is configured and the signature did not verify.
SpoolFailed
The durable write failed. The caller MUST return 5xx and MUST NOT ack.
Accepted
The delivery is durably recorded. Safe to acknowledge GitHub.
Fields
§
relay: RelayOutcomeWhat the relay attempt established. Not a precondition of the ack.
Trait Implementations§
Source§impl Clone for IngestOutcome
impl Clone for IngestOutcome
Source§fn clone(&self) -> IngestOutcome
fn clone(&self) -> IngestOutcome
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for IngestOutcome
impl Debug for IngestOutcome
impl Eq for IngestOutcome
Source§impl PartialEq for IngestOutcome
impl PartialEq for IngestOutcome
impl StructuralPartialEq for IngestOutcome
Auto Trait Implementations§
impl Freeze for IngestOutcome
impl RefUnwindSafe for IngestOutcome
impl Send for IngestOutcome
impl Sync for IngestOutcome
impl Unpin for IngestOutcome
impl UnsafeUnpin for IngestOutcome
impl UnwindSafe for IngestOutcome
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more