#[non_exhaustive]pub struct InteractionDescriptor {Show 14 fields
pub interaction_id: InteractionId,
pub kind: InteractionKind,
pub label: String,
pub required_permission: Option<String>,
pub input_schema: Option<SchemaContract>,
pub result_schema: Option<SchemaContract>,
pub sensitive_fields: Vec<String>,
pub timeout_seconds: Option<u16>,
pub confirmation: Option<InteractionConfirmation>,
pub transport: InteractionTransport,
pub workflow_steps: Vec<WorkflowStepDescriptor>,
pub form_ui: Option<FormUiDescriptor>,
pub icon: Option<String>,
pub submit_label: Option<String>,
}Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.interaction_id: InteractionId§kind: InteractionKind§label: String§required_permission: Option<String>§input_schema: Option<SchemaContract>§result_schema: Option<SchemaContract>§sensitive_fields: Vec<String>§timeout_seconds: Option<u16>§confirmation: Option<InteractionConfirmation>§transport: InteractionTransport§workflow_steps: Vec<WorkflowStepDescriptor>§form_ui: Option<FormUiDescriptor>§icon: Option<String>§submit_label: Option<String>Implementations§
Source§impl InteractionDescriptor
impl InteractionDescriptor
Sourcepub fn new(
interaction_id: InteractionId,
kind: InteractionKind,
label: impl Into<String>,
transport: InteractionTransport,
) -> InteractionDescriptor
pub fn new( interaction_id: InteractionId, kind: InteractionKind, label: impl Into<String>, transport: InteractionTransport, ) -> InteractionDescriptor
Creates a new InteractionDescriptor with all optional fields set to their defaults.
Sourcepub fn validate_for_provider(
&self,
provider_kind: ProviderKind,
) -> Result<(), InteractionValidationError>
pub fn validate_for_provider( &self, provider_kind: ProviderKind, ) -> Result<(), InteractionValidationError>
Validates provider-specific interaction contract rules.
§Errors
Returns
InteractionValidationError::DirectBuiltInApiForbiddenForProvider
when a non-built-in provider uses direct_built_in_api transport.
Returns InteractionValidationError::TimeoutOutOfRange when
timeout_seconds falls outside
MIN_INTERACTION_TIMEOUT_SECONDS..=MAX_INTERACTION_TIMEOUT_SECONDS.
Returns InteractionValidationError::WorkflowMissingSteps when
a workflow interaction declares no steps.
Returns
InteractionValidationError::ConfirmableActionMissingConfirmation
when a confirmable interaction omits confirmation metadata.
Returns InteractionValidationError::BlankLabel when label is
empty or whitespace-only.
Returns InteractionValidationError::BlankWorkflowStepLabel when
any workflow step has an empty or whitespace-only label.
Returns InteractionValidationError::IconInvalid when icon is
Some but fails kebab-case validation.
Trait Implementations§
Source§impl Clone for InteractionDescriptor
impl Clone for InteractionDescriptor
Source§fn clone(&self) -> InteractionDescriptor
fn clone(&self) -> InteractionDescriptor
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for InteractionDescriptor
impl Debug for InteractionDescriptor
Source§impl<'de> Deserialize<'de> for InteractionDescriptor
impl<'de> Deserialize<'de> for InteractionDescriptor
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<InteractionDescriptor, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<InteractionDescriptor, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl Eq for InteractionDescriptor
Source§impl PartialEq for InteractionDescriptor
impl PartialEq for InteractionDescriptor
Source§fn eq(&self, other: &InteractionDescriptor) -> bool
fn eq(&self, other: &InteractionDescriptor) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for InteractionDescriptor
impl Serialize for InteractionDescriptor
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for InteractionDescriptor
Auto Trait Implementations§
impl Freeze for InteractionDescriptor
impl RefUnwindSafe for InteractionDescriptor
impl Send for InteractionDescriptor
impl Sync for InteractionDescriptor
impl Unpin for InteractionDescriptor
impl UnsafeUnpin for InteractionDescriptor
impl UnwindSafe for InteractionDescriptor
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
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§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.