//! mitoo is a Rust toolkit library that encapsulates methods such as configuration reading, file operations, encryption and decryption, transcoding, regular expressions, and threading, with various custom or integrated Util tool classes.
//! 
//! Yaml configuration reading
//! ```rust
//! use mitoo::YamlWrapper;
//! 
//! #[test]
//! fn test_config_util() {
//!     // read the configuration file
//!     let wrapper = YamlWrapper::new("docs/config.yaml").unwrap();
//!     // Directly convert the YAML string into YamlWrapper
//!     // let warpper = YamlWrapper::from_string("......").unwrap();
//! 
//!     // Whether it is an object or an array, they are directly operated using the . (dot).
//!     // Here, "address" is an object, "children" is an array, and "name" is an attribute of the objects within the "children" array.
//!     let x = wrapper.get("address.children.name");
//!     println!("address.children.name = {:?}", x);
//!     
//!     // The get method is used to retrieve an array, while get_one is used to retrieve the first element.
//!     let x = wrapper.get_one("address.x.y").as_str().unwrap();
//!     println!("address.x.y = {}", x);
//! }
//! ```
//! 
//! Defined macros：
//! 
//! - 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;
pub mod macro_util;
pub mod third;
mod exception_util;
mod env_util;
mod storage;
mod tree_util;
mod url_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};
#[cfg(feature = "db-sqlite")]
pub use db_sqlite::{SqliteClient, FromSqliteRow};
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;
#[cfg(feature = "mq")]
pub use third::rabbitmq_util::RabbitMQUtil;
pub use thread_util::ThreadUtil;
pub use storage::object_storage::ObjectStorage;
pub use tree_util::{TreeUtil, TreeNode, TreeData};
pub use url_util::UrlUtil;
