#![forbid(unsafe_code)]
#![allow(rustdoc::bare_urls)]
pub mod args;
pub mod bot;
pub mod event_trigger;
pub use event_trigger::{
AdminChange, BotOffline, BotOnline, Connect, Disconnect, EventKind, FriendAdd, FriendRequest,
GroupCardChange, GroupJoinRequest, Heartbeat, Honor, LuckyKing, MemberJoin, MemberLeave, Mute,
Nudge, Ready, Recall,
};
pub mod plugin;
pub use plugin::{
registered_plugins, registered_triggers_resolved, Category, PluginMeta, PluginSpec, SwitchKey,
TriggerKind, TriggerMeta,
};
pub mod cooldown;
pub mod ctx;
pub mod dispatch;
pub mod enabled;
pub mod extract;
pub mod handler;
pub mod impl_info;
pub mod invoker;
pub mod matcher;
pub mod middleware;
pub mod ratelimit;
pub mod reconnect;
pub mod sse;
pub mod wire;
pub mod framesource;
pub mod rendezvous;
pub mod session;
pub mod refs;
pub mod registry;
pub mod router;
pub mod rule;
pub mod service;
pub mod slots;
pub mod source;
pub use args::{ArgError, ArgKind, ArgSpec, Args, ArgsMeta, ArgToken, FromArg, ParseArgs};
pub use bot::{add_outgoing_logger, set_outgoing_logger, Bot};
pub use impl_info::ImplInfo;
pub use nagisa_types::vendor::Vendor;
pub use source::EventSource;
pub mod adapter {
pub use crate::invoker::{ActionInvoker, Actions, MilkyActions, OneBotActions};
}
pub mod engine {
pub use crate::ctx::StateMap;
pub use crate::handler::ErasedHandler;
pub use crate::rule::Check;
pub use crate::session::{Selector, WaiterBuilder};
}
pub use cooldown::{Cd, CdKey, Cooldown, CooldownScope, CooldownStore, TriggerId};
pub use ctx::{Ctx, DevMode};
pub use dispatch::run_dispatch;
pub use enabled::{EnabledOverrides, EnabledSet};
pub use extract::{
ArgText, At, Captures, Command, CommandArg, EventPeer, Extracted, FromContext, GroupMessage,
Image, PrivateMessage, Reject, Reply, ReplyMsg, Sender, State, ToMe,
};
pub use matcher::{regex_escape, CommandUsage, Flank, Matcher, ParsedCommand, SlotSpec};
pub use slots::{FromSlots, FromTailText, NamedCaptures, SlotValue, Slots, Tail};
pub use middleware::{Flow, Middleware, Next};
pub use ratelimit::{RateLimit, RateLimitScope};
pub use rendezvous::{Rendezvous, RendezvousSnapshot};
pub use session::{
Delivery, FlightGuard, FlightStore, Scope, Session, WaitFlow, Waiter, WaiterDepth, WaiterStore,
};
pub use nagisa_types::event::{Meta, Notice, Request};
pub use handler::{Handler, HandlerOutcome, HandlerResult, IntoHandlerResult};
pub use registry::{collect_into, registered_triggers, TriggerSpec};
pub use refs::{FriendRef, GroupRef, MemberRef};
pub use router::Router;
pub use rule::{
awake, awake_silent, from_user, group_admin, group_only, group_owner, in_group, keyword,
private, replying, superuser, switch, to_me, GateReply, KillSwitch, Rule,
SleepState, Superusers,
};
pub use service::{Service, ServiceBus, Supervisor};
pub use inventory;
pub use async_trait::async_trait;
pub use tokio_util::sync::CancellationToken as ShutdownToken;