//! mitoo 是一个Rust工具包类库，对配置读取、文件操作、加解密、转码、正则、线程等方法进行封装，自定义或集成各种Util工具类。 
//! 
//! Yaml 配置读取
//! ```rust
//! use mitoo::YamlWrapper;
//! 
//! #[test]
//! fn test_config_util() {
//!     // 读取配置文件
//!     let wrapper = YamlWrapper::new("docs/config.yaml").unwrap();
//!     // 直接将yaml字符串转换成YamlWrapper
//!     // let warpper = YamlWrapper::from_string("......").unwrap();
//! 
//!     // 不管是对象，还是数组，都是直接通过`.`操作。address是对象，children是数组，name是children中对象的一个属性
//!     let x = wrapper.get("address.children.name");
//!     println!("address.children.name = {:?}", x);
//!     
//!     // get方法是获取数组，而get_one获取的是第一个元素
//!     let x = wrapper.get_one("address.x.y").as_str().unwrap();
//!     println!("address.x.y = {}", x);
//! }
//! ```
//! 
//! 定义的宏：
//! 
//! - mitoo::set
//! - mitoo::map
//! 
mod conf_util;
mod conf_util_yaml;
mod date_util;
mod file_util;
mod hex_util;
mod http_util;
mod log_util;
mod re_util;
mod secure_util;
mod thread_util;
mod id_util;
mod str_util;
mod collection_util;
mod scheduling_util;
mod cmd_util;
mod ffmpeg_util;
mod db;

mod db_sqlite;
mod db_mysql;
pub mod sqlite_util;
pub mod macro_util;
/// 第三方crate，将部分简单依赖，直接拷贝到该模块中，减少项目在引入依赖时的版本冲突
pub mod third;
mod exception_util;
mod env_util;

pub use cmd_util::CmdUtil;
pub use collection_util::CollectionUtil;
pub use conf_util::JsonWrapper;
pub use conf_util_yaml::YamlWrapper;
pub use date_util::DateUtil;
pub use db::{Object, SqlCrud};
pub use db_mysql::MySqlClient;
pub use db_sqlite::SqliteClient;
pub use env_util::EnvUtil;
pub use exception_util::Exception;
pub use ffmpeg_util::FfmpegUtil;
pub use file_util::FileUtil;
pub use hex_util::HexUtil;
pub use http_util::HttpUtil;
pub use id_util::IdUtil;
pub use log_util::LogUtil;
pub use re_util::ReUtil;
pub use scheduling_util::SchedulingUtil;
pub use secure_util::SecureUtil;
pub use str_util::StrUtil;
pub use third::rabbitmq_util::RabbitMQUtil;
pub use thread_util::ThreadUtil;
