#[non_exhaustive]pub enum InteractionRejection {
NotFound,
NotActive {
status: InteractionStatus,
},
AlreadyResolved {
option_id: Option<OptionId>,
},
Expired,
Stale {
bound_revision: CaseRevision,
current_revision: CaseRevision,
},
UnknownOption,
FreeformNotAllowed,
FreeformRequired,
FreeformTooLong {
max_len: usize,
},
PayloadCorrupt,
ChannelNotAllowed {
channel: ResolutionChannel,
},
}Expand description
Why a response was not accepted (spec §15.5).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
NotFound
Wrong id, account or conversation. Deliberately indistinguishable so a guessed id reveals nothing about other tenants (spec §25.4).
NotActive
The interaction is not Active.
Fields
status: InteractionStatusCurrent status.
AlreadyResolved
The interaction was already resolved; the original option is returned so the caller can replay the original result (I14).
Expired
The interaction expired.
Stale
The case moved past the bound revision, or the client echoed another one.
Fields
bound_revision: CaseRevisionRevision the card was rendered against.
current_revision: CaseRevisionRevision now.
UnknownOption
The option id is not stored on the interaction.
FreeformNotAllowed
Free text was supplied but the option forbids it.
FreeformRequired
The option requires free text and none was supplied.
FreeformTooLong
Free text exceeds the option’s limit.
PayloadCorrupt
The stored payload no longer hashes to the stored payload_hash, so the
option’s meaning is not the one the user saw.
ChannelNotAllowed
The answer arrived on a channel the card’s
TextResolutionPolicy does not admit (e.g. an interpreted “yes” on a
card that only the CTA resolves).
Fields
channel: ResolutionChannelThe channel the answer arrived on.
Trait Implementations§
Source§impl Clone for InteractionRejection
impl Clone for InteractionRejection
Source§impl Debug for InteractionRejection
impl Debug for InteractionRejection
Source§impl<'de> Deserialize<'de> for InteractionRejection
impl<'de> Deserialize<'de> for InteractionRejection
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for InteractionRejection
impl Display for InteractionRejection
impl Eq for InteractionRejection
Source§impl Error for InteractionRejection
impl Error for InteractionRejection
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<InteractionRejection> for InteractionError
impl From<InteractionRejection> for InteractionError
Source§fn from(value: InteractionRejection) -> Self
fn from(value: InteractionRejection) -> Self
Source§impl PartialEq for InteractionRejection
impl PartialEq for InteractionRejection
Source§impl Serialize for InteractionRejection
impl Serialize for InteractionRejection
impl StructuralPartialEq for InteractionRejection
Auto Trait Implementations§
impl Freeze for InteractionRejection
impl RefUnwindSafe for InteractionRejection
impl Send for InteractionRejection
impl Sync for InteractionRejection
impl Unpin for InteractionRejection
impl UnsafeUnpin for InteractionRejection
impl UnwindSafe for InteractionRejection
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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
key and return true if they are equal.