pub struct DiscordConfig {
pub bot_token: String,
pub guild_id: Option<String>,
pub allowed_users: Vec<String>,
pub listen_to_bots: bool,
pub interrupt_on_new_message: bool,
pub mention_only: bool,
pub notification_channel_id: Option<String>,
pub proxy_url: Option<String>,
pub stream_mode: StreamMode,
pub draft_update_interval_ms: u64,
pub multi_message_delay_ms: u64,
}Expand description
Discord bot channel configuration.
Fields§
§bot_token: StringDiscord bot token (from Discord Developer Portal).
guild_id: Option<String>Optional guild (server) ID to restrict the bot to a single guild.
allowed_users: Vec<String>Allowed Discord user IDs. Empty = deny all.
listen_to_bots: boolWhen true, process messages from other bots (not just humans). The bot still ignores its own messages to prevent feedback loops.
interrupt_on_new_message: boolWhen true, a newer Discord message from the same sender in the same channel cancels the in-flight request and starts a fresh response with preserved history.
mention_only: boolWhen true, only respond to messages that @-mention the bot. Other messages in the guild are silently ignored.
notification_channel_id: Option<String>Discord channel ID for workflow notifications and system alerts.
When set, workflow notify steps targeting “discord” post here.
proxy_url: Option<String>Per-channel proxy URL (http, https, socks5, socks5h).
Overrides the global [proxy] setting for this channel only.
stream_mode: StreamModeStreaming mode for progressive response delivery.
off (default): single message. partial: editable draft updates.
multi_message: split response into separate messages at paragraph boundaries.
draft_update_interval_ms: u64Minimum interval (ms) between draft message edits to avoid rate limits.
Only used when stream_mode = "partial".
multi_message_delay_ms: u64Delay (ms) between sending each message chunk in multi-message mode.
Only used when stream_mode = "multi_message".
Trait Implementations§
Source§impl ChannelConfig for DiscordConfig
impl ChannelConfig for DiscordConfig
Source§impl Clone for DiscordConfig
impl Clone for DiscordConfig
Source§fn clone(&self) -> DiscordConfig
fn clone(&self) -> DiscordConfig
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 DiscordConfig
impl Debug for DiscordConfig
Source§impl<'de> Deserialize<'de> for DiscordConfig
impl<'de> Deserialize<'de> for DiscordConfig
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 JsonSchema for DiscordConfig
impl JsonSchema for DiscordConfig
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 moreAuto Trait Implementations§
impl Freeze for DiscordConfig
impl RefUnwindSafe for DiscordConfig
impl Send for DiscordConfig
impl Sync for DiscordConfig
impl Unpin for DiscordConfig
impl UnsafeUnpin for DiscordConfig
impl UnwindSafe for DiscordConfig
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,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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>
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