mod fast_str;
mod lexicographic_iterator;
mod unicode;
mod line_processor;
mod bmi2_string_ops;
mod simd_search;
mod numeric_compare;
mod join;
mod word_boundary;
mod hex;
pub use fast_str::FastStr;
pub use numeric_compare::{
decimal_strcmp, decimal_strcmp_with_sign,
realnum_strcmp, realnum_strcmp_with_sign,
};
pub use lexicographic_iterator::{
LexicographicIterator, SortedVecLexIterator, StreamingLexIterator,
LexIteratorBuilder,
};
pub use unicode::{
UnicodeProcessor, UnicodeAnalysis, Utf8ToUtf32Iterator,
utf8_byte_count, validate_utf8_and_count_chars,
};
pub use line_processor::{
LineProcessor, LineProcessorConfig, LineProcessorStats,
LineSplitter,
};
pub use simd_search::{
SimdStringSearch, SearchTier, MultiSearchResult,
get_global_simd_search, sse42_strchr, sse42_strstr,
sse42_multi_search, sse42_strcmp,
};
pub use bmi2_string_ops::{
Bmi2StringProcessor, CharClass, CharFilter, CharRun, CompressionAnalysis,
StringDictionary, DictionaryEntry, DictionaryMatch,
get_global_bmi2_processor, validate_utf8_bmi2, count_utf8_chars_bmi2,
search_string_bmi2, wildcard_match_bmi2, to_lowercase_ascii_bmi2,
to_uppercase_ascii_bmi2, hash_string_bmi2, detect_runs_bmi2,
};
pub use join::{
join, join_str, join_fast_str, join_iter, join_bytes_iter,
JoinBuilder,
};
pub use word_boundary::{
is_word_boundary, is_word_char, is_whitespace, is_punctuation,
find_word_boundaries, words, word_count, word_at_position,
WordIterator,
};
pub use hex::{
hex_decode, hex_decode_bytes, hex_decode_to_slice,
hex_encode, hex_encode_upper, hex_encode_to_bytes, hex_encode_to_slice,
hex_char_to_nibble, nibble_to_hex_lower, nibble_to_hex_upper,
is_valid_hex, parse_hex_byte,
};
pub mod utils {
pub use super::lexicographic_iterator::utils as lex_utils;
pub use super::unicode::utils as unicode_utils;
pub use super::line_processor::utils as line_utils;
}
pub mod simd {
pub use super::simd_search::*;
}
pub mod bmi2 {
pub use super::bmi2_string_ops::*;
}