1pub mod arr;
60pub mod data;
61pub mod errors;
62pub mod fp;
63pub mod fs;
64pub mod path;
65pub mod result;
66pub mod str;
67pub mod string;
68pub mod types;
69
70pub use arr::*;
71pub use data::numbers;
72pub use errors::ResultExt as RokResultExt;
73pub use errors::{ResultExt, RokError};
74pub use fp::{apply, compose, memoize, or_default, pipe, retry, tap, Lazy};
75pub use fs::{
76 copy_dir_all, ensure_dir, find_files, is_dir, is_file, read_bytes, read_to_string, write_atomic,
77};
78pub use path::{normalize, stem_ext, with_extension};
79pub use str::{to_base64, Str};
80pub use string::{
81 char_at, contains, contains_all, doesnt_contain, ends_with, ensure_start, finish, invert_case,
82 is_alphanumeric, is_ascii, is_empty, is_url, lcfirst, length, mask, pad_both, pad_left,
83 pad_right, pluralize, position, pretty_duration, repeat, replace_first, replace_last, reverse,
84 slug, squish, starts_with, substr_count, to_camel_case, to_dot_case, to_headline,
85 to_kebab_case, to_lower, to_no_case, to_pascal_case, to_screaming_snake, to_sentence_case,
86 to_snake_case, to_title_case, to_upper, truncate, ucfirst, unwrap, word_count, wrap,
87};
88
89#[cfg(feature = "dates")]
90pub use data::dates::{
91 add_days, add_hours, diff_days, format_date, human_diff, now, parse_date, today, tomorrow,
92 yesterday,
93};
94
95#[cfg(feature = "crypto")]
96pub use data::hashing::{generate_token, hash_sha256, secure_compare, verify_sha256};
97
98#[cfg(feature = "ids")]
99pub use data::ids::{is_ulid, is_uuid, ulid, uuid_v4, uuid_v7};
100
101#[cfg(feature = "random")]
102pub use string::{password, random};
103
104#[cfg(feature = "json")]
105pub use str::escape_html;
106
107#[cfg(feature = "json")]
108pub use string::is_json;
109
110#[cfg(feature = "json")]
111pub use types::{
112 deep_equal, get_path, is_array, is_bool, is_null, is_number, is_object, is_string, set_path,
113};
114
115#[cfg(feature = "random")]
116pub use fp::shuffle;
117
118#[cfg(test)]
119mod tests {
120 #[test]
121 fn it_works() {
122 assert!(true);
123 }
124}