pub struct AutoReplyConfig {
pub enabled: bool,
pub triggers: Vec<AutoReplyTrigger>,
pub whitelist: Vec<String>,
pub default_cooldown_seconds: u64,
pub group_activations: Vec<GroupActivation>,
}Expand description
自动回复配置
包含自动回复系统的所有配置项。
§字段说明
enabled: 全局开关,控制是否启用自动回复triggers: 触发器列表,定义触发条件whitelist: 白名单用户列表,空列表表示允许所有用户default_cooldown_seconds: 默认冷却时间(秒)group_activations: 群组特定配置列表
Fields§
§enabled: bool是否启用自动回复
triggers: Vec<AutoReplyTrigger>触发器列表
whitelist: Vec<String>白名单用户
default_cooldown_seconds: u64默认冷却时间(秒)
group_activations: Vec<GroupActivation>群组激活配置
Implementations§
Source§impl AutoReplyConfig
impl AutoReplyConfig
Sourcepub fn load(path: &Path) -> Self
pub fn load(path: &Path) -> Self
从文件加载配置
Validates: Requirements 10.2, 10.3, 10.4
§行为
- 文件存在且有效:返回解析后的配置
- 文件不存在:记录 info 日志,返回默认配置(Requirement 10.3)
- 文件解析失败:记录 error 日志,返回默认配置(Requirement 10.4)
§参数
path- 配置文件路径
§返回值
返回加载的配置,如果加载失败则返回默认配置。
§示例
ⓘ
use std::path::Path;
use aster::auto_reply::AutoReplyConfig;
let config = AutoReplyConfig::load(Path::new("auto_reply.json"));Sourcepub fn save(&self, path: &Path) -> ConfigResult<()>
pub fn save(&self, path: &Path) -> ConfigResult<()>
Sourcepub fn reload(path: &Path) -> ConfigResult<Self>
pub fn reload(path: &Path) -> ConfigResult<Self>
重新加载配置
Validates: Requirement 10.5
从文件重新加载配置,支持热重载。 如果加载失败,保持当前配置不变并返回错误。
§参数
path- 配置文件路径
§返回值
成功时返回新配置,失败时返回错误(当前配置不变)。
§示例
ⓘ
use std::path::Path;
use aster::auto_reply::AutoReplyConfig;
let mut config = AutoReplyConfig::default();
match config.reload(Path::new("auto_reply.json")) {
Ok(new_config) => {
config = new_config;
println!("Config reloaded successfully");
}
Err(e) => {
println!("Failed to reload config: {}", e);
}
}Sourcepub fn is_default(&self) -> bool
pub fn is_default(&self) -> bool
检查是否为默认配置
Sourcepub fn enabled_trigger_count(&self) -> usize
pub fn enabled_trigger_count(&self) -> usize
获取启用的触发器数量
Sourcepub fn group_count(&self) -> usize
pub fn group_count(&self) -> usize
获取群组配置数量
Trait Implementations§
Source§impl Clone for AutoReplyConfig
impl Clone for AutoReplyConfig
Source§fn clone(&self) -> AutoReplyConfig
fn clone(&self) -> AutoReplyConfig
Returns a duplicate of the value. Read more
1.0.0 · 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 AutoReplyConfig
impl Debug for AutoReplyConfig
Source§impl Default for AutoReplyConfig
impl Default for AutoReplyConfig
Source§impl<'de> Deserialize<'de> for AutoReplyConfig
impl<'de> Deserialize<'de> for AutoReplyConfig
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for AutoReplyConfig
impl PartialEq for AutoReplyConfig
Source§impl Serialize for AutoReplyConfig
impl Serialize for AutoReplyConfig
impl StructuralPartialEq for AutoReplyConfig
Auto Trait Implementations§
impl Freeze for AutoReplyConfig
impl RefUnwindSafe for AutoReplyConfig
impl Send for AutoReplyConfig
impl Sync for AutoReplyConfig
impl Unpin for AutoReplyConfig
impl UnsafeUnpin for AutoReplyConfig
impl UnwindSafe for AutoReplyConfig
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<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestCreates a shared type from an unshared type.
Source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref() only in debug builds, and is erased in release
builds.