//! test commands generally used for hot lib reloadable functions. //! see https://github.com/rksm/hot-lib-reloader-rs?tab=readme-ov-file#usage for more details if you are a dev //#[cfg(not(feature = "hot_reload"))] //#[allow(unused_imports)] //#[allow(clippy::wildcard_imports)] // non hot reloadable functions (?) //use hot_lib::*; #[cfg(feature = "hot_reload")] #[allow(unused_imports)] #[allow(clippy::wildcard_imports)] use hot_lib_funcs::*; use ruma::events::room::message::RoomMessageEventContent; use crate::{debug_error, Result}; #[cfg(feature = "hot_reload")] #[hot_lib_reloader::hot_module(dylib = "lib")] mod hot_lib_funcs { // these will be functions from lib.rs, so `use hot_lib_funcs::test_command;` hot_functions_from_file!("hot_lib/src/lib.rs"); } #[cfg_attr(test, derive(Debug))] #[derive(clap::Subcommand)] pub(crate) enum TestCommands { // !admin test test1 Test1, } pub(crate) async fn process(command: TestCommands, _body: Vec<&str>) -> Result { Ok(match command { TestCommands::Test1 => { debug_error!("before calling test_command"); test_command(); debug_error!("after calling test_command"); RoomMessageEventContent::notice_plain(String::from("loaded")) }, }) }