// #![feature(non_ascii_idents)]

// #[macro_use]
// extern crate serde;
#[macro_use]
extern crate log;
#[macro_use]
pub mod macro_x;
pub mod arg;
mod exit_signal;
pub mod f64_util;
pub mod file;
mod i_result;
pub mod time_int;
pub mod time_micros;

pub mod log4rs_mod;

#[cfg(feature = "use_tcp")]
pub mod tcp_mod;

#[cfg(feature = "use_tcp")]
pub mod tcp_mod2;

#[cfg(feature = "use_tcp")]
pub mod tcp_mod3;

#[cfg(feature = "use_req")]
pub mod req;

#[cfg(feature = "use_req_async")]
pub mod req_async;

#[cfg(feature = "use_mail")]
pub mod mail;

// #[cfg(feature = "use_log")]
// pub mod mylog;

#[cfg(feature = "use_mail")]
pub mod send_dingding_msg;

pub mod serdejson;
pub mod string;
pub mod time;

#[cfg(feature = "use_toml")]
#[macro_use]
pub mod toml_read;

pub mod run_time;
pub mod time_ellapse;

#[cfg(feature = "use_req")]
pub mod send_feishu_msg;

#[cfg(feature = "use_restart")]
pub mod restart;

pub use arg::get_arg;
pub use exit_signal::ExitSignal;
pub use exit_signal::ExitSignal2;
pub use i_result::IResult;
pub use i_result::StdBoxError;
pub use serdejson::get_json_string;
pub use serdejson::JsonVExentd;
pub use serdejson::SerdejsonExentd;
pub type JsonV = serde_json::Value;

#[cfg(feature = "use_csv")]
pub mod csv_util;
