zipora 3.1.7

High-performance Rust implementation providing advanced data structures and compression algorithms with memory safety guarantees. Features LRU page cache, sophisticated caching layer, fiber-based concurrency, real-time compression, secure memory pools, SIMD optimizations, and complete C FFI for migration from C++.
//! Zero-copy string operations with SIMD optimization
//!
//! This module provides high-performance string types optimized for minimal copying
//! and maximum throughput using SIMD instructions where available.
//!
//! ## Features
//!
//! - **FastStr**: Zero-copy string operations with SIMD hashing
//! - **SIMD Search**: SSE4.2 PCMPESTRI-based string search operations with hybrid strategies
//! - **BMI2 String Operations**: Hardware-accelerated string processing with BMI2 instructions
//! - **Lexicographic Iterators**: Efficient iteration over sorted string collections
//! - **Unicode Processing**: Full Unicode support with proper handling
//! - **Line Processing**: Utilities for processing large text files line by line
//! - **Numeric Comparison**: `decimal_strcmp` and `realnum_strcmp` for numeric string comparison
//! - **String Joining**: Efficient `join`, `join_str`, `JoinBuilder` utilities
//! - **Word Boundary**: `is_word_boundary`, `words`, `word_count` for text tokenization
//! - **Hex Encoding**: `hex_decode`, `hex_encode` for hex string conversion

mod bmi2_string_ops;
mod fast_str;
mod hex;
mod join;
mod lexicographic_iterator;
mod line_processor;
mod numeric_compare;
mod simd_search;
mod unicode;
mod word_boundary;

pub use fast_str::FastStr;

// Numeric string comparison exports
pub use numeric_compare::{
    decimal_strcmp, decimal_strcmp_with_sign, realnum_strcmp, realnum_strcmp_with_sign,
};

// Lexicographic iterator exports
pub use lexicographic_iterator::{
    LexIteratorBuilder, LexicographicIterator, SortedVecLexIterator, StreamingLexIterator,
};

// Unicode processing exports
pub use unicode::{
    UnicodeAnalysis, UnicodeProcessor, Utf8ToUtf32Iterator, utf8_byte_count,
    validate_utf8_and_count_chars,
};

// Line processing exports
pub use line_processor::{LineProcessor, LineProcessorConfig, LineProcessorStats, LineSplitter};

// SIMD search operations exports
pub use simd_search::{
    MultiSearchResult, SearchTier, SimdStringSearch, get_global_simd_search, sse42_multi_search,
    sse42_strchr, sse42_strcmp, sse42_strstr,
};

// BMI2 string operations exports
pub use bmi2_string_ops::{
    Bmi2StringProcessor, CharClass, CharFilter, CharRun, CompressionAnalysis, DictionaryEntry,
    DictionaryMatch, StringDictionary, count_utf8_chars_bmi2, detect_runs_bmi2,
    get_global_bmi2_processor, hash_string_bmi2, search_string_bmi2, to_lowercase_ascii_bmi2,
    to_uppercase_ascii_bmi2, validate_utf8_bmi2, wildcard_match_bmi2,
};

// String join utilities exports
pub use join::{JoinBuilder, join, join_bytes_iter, join_fast_str, join_iter, join_str};

// Word boundary detection exports
pub use word_boundary::{
    WordIterator, find_word_boundaries, is_punctuation, is_whitespace, is_word_boundary,
    is_word_char, word_at_position, word_count, words,
};

// Hex encoding/decoding exports
pub use hex::{
    hex_char_to_nibble, hex_decode, hex_decode_bytes, hex_decode_to_slice, hex_encode,
    hex_encode_to_bytes, hex_encode_to_slice, hex_encode_upper, is_valid_hex, nibble_to_hex_lower,
    nibble_to_hex_upper, parse_hex_byte,
};

/// Utility modules for common string operations
pub mod utils {
    pub use super::lexicographic_iterator::utils as lex_utils;
    pub use super::line_processor::utils as line_utils;
    pub use super::unicode::utils as unicode_utils;
}

/// SIMD string search utilities for hardware-accelerated string operations
pub mod simd {
    pub use super::simd_search::*;
}

/// BMI2 string processing utilities for advanced string operations
pub mod bmi2 {
    pub use super::bmi2_string_ops::*;
}