Enum SopDispatch
pub enum SopDispatch {
AgentLoop,
Sop,
SopAndAgentLoop,
}Expand description
Generic AMQP 0-9-1 channel configuration (RabbitMQ, Fedora Messaging, etc.).
Subscribes to an exchange via routing keys and lifts each delivery into an
inbound ChannelMessage. The mapping from a JSON delivery body to message
fields is config-driven (content_template, thread_id_field) so a new
source — Anitya, an internal bus, anything publishing JSON — is onboarded by
configuration rather than code.
Where a fan-in delivery is routed once consumed. Used by AMQP, which carries
this field to choose between the agent loop, the SOP engine, or both.
Agent-loop channels (Telegram, Discord, Slack, …) do not carry a dispatch
field: their fan-in is trigger-driven, opting in via a SOP channel trigger
while the normal agent turn always runs. The mode is source-agnostic.
Variants§
AgentLoop
Drive a normal agent turn: the delivery becomes a ChannelMessage.
This is the default and preserves each channel’s original behavior.
Sop
Dispatch the delivery to the SOP engine as a SopEvent (topic =
source identifier, payload = body), matching SOPs whose trigger for
this source matches. No agent turn is started.
SopAndAgentLoop
Do both: dispatch to the SOP engine and drive an agent turn from the same delivery.
Trait Implementations§
Source§impl Clone for SopDispatch
impl Clone for SopDispatch
Source§fn clone(&self) -> SopDispatch
fn clone(&self) -> SopDispatch
1.0.0 (const: unstable) · §fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SopDispatch
impl Debug for SopDispatch
Source§impl Default for SopDispatch
impl Default for SopDispatch
Source§fn default() -> SopDispatch
fn default() -> SopDispatch
Source§impl<'de> Deserialize<'de> for SopDispatch
impl<'de> Deserialize<'de> for SopDispatch
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<SopDispatch, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<SopDispatch, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl HasPropKind for SopDispatch
impl HasPropKind for SopDispatch
const PROP_KIND: PropKind = crate::config::PropKind::Enum
const ALIAS_SOURCE: Option<AliasSource> = None
Source§fn display_secret_terminals() -> Vec<&'static str>
fn display_secret_terminals() -> Vec<&'static str>
secret_field_terminals.Source§impl JsonSchema for SopDispatch
impl JsonSchema for SopDispatch
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for SopDispatch
impl PartialEq for SopDispatch
Source§impl Serialize for SopDispatch
impl Serialize for SopDispatch
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 Copy for SopDispatch
impl Eq for SopDispatch
impl StructuralPartialEq for SopDispatch
Auto Trait Implementations§
impl Freeze for SopDispatch
impl RefUnwindSafe for SopDispatch
impl Send for SopDispatch
impl Sync for SopDispatch
impl Unpin for SopDispatch
impl UnsafeUnpin for SopDispatch
impl UnwindSafe for SopDispatch
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
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>
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