1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
//! Four-Word Networking
//!
//! Convert network IP addresses into memorable word combinations
//! for human-friendly networking.
//!
//! ## Features
//!
//! - **Perfect IPv4**: Converts IPv4 addresses like `192.168.1.1:443`
//! into exactly 4 memorable words with 100% perfect reconstruction
//! - **Adaptive IPv6**: Converts IPv6 addresses into 6, 9, or 12 words using intelligent compression
//! - **Voice-Friendly**: Easy to share over phone calls or voice chat
//! - **Error-Resistant**: Much less prone to typos than long technical addresses
//! - **Deterministic**: Same IP address always produces the same word combination
//! - **Visual Distinction**: Different formatting for IPv4 vs IPv6 addresses
//! - **Universal**: Works with any valid IP address format
//!
//! ## Examples
//!
//! ### Basic Encoding/Decoding
//! ```rust
//! use four_word_networking::FourWordAdaptiveEncoder;
//!
//! let encoder = FourWordAdaptiveEncoder::new()?;
//! let address = "192.168.1.1:443";
//!
//! // Convert to four words (perfect reconstruction for IPv4)
//! let words = encoder.encode(address)?;
//! println!("Address: {} -> {}", address, words);
//!
//! // Decode back to exact address
//! let decoded = encoder.decode(&words)?;
//! assert_eq!(address, decoded);
//! # Ok::<(), Box<dyn std::error::Error>>(())
//! ```
//!
//! ### Random Word Generation
//! ```rust
//! use four_word_networking::FourWordAdaptiveEncoder;
//!
//! let encoder = FourWordAdaptiveEncoder::new()?;
//!
//! // Generate random dictionary words (NOT IP encodings)
//! // Useful for passphrases, test data, or any application needing random words
//! let random_words = encoder.get_random_words(4);
//! println!("Random words: {}", random_words.join(" "));
//!
//! // Generate a 6-word passphrase
//! let passphrase = encoder.get_random_words(6);
//! println!("Passphrase: {}", passphrase.join("-"));
//!
//! // All generated words are valid dictionary words
//! for word in &random_words {
//! assert!(encoder.is_valid_word(word));
//! }
//! # Ok::<(), Box<dyn std::error::Error>>(())
//! ```
//!
//! ### Word Validation
//! ```rust
//! use four_word_networking::FourWordAdaptiveEncoder;
//!
//! let encoder = FourWordAdaptiveEncoder::new()?;
//!
//! // Validate user input words
//! assert!(encoder.is_valid_word("ocean"));
//! assert!(encoder.is_valid_word("OCEAN")); // Case-insensitive
//! assert!(!encoder.is_valid_word("xyz123")); // Invalid word
//!
//! // Get word suggestions for partial input
//! let hints = encoder.get_word_hints("oce");
//! assert!(hints.contains(&"ocean".to_string()));
//! # Ok::<(), Box<dyn std::error::Error>>(())
//! ```
// Experimental modules removed
// Ultra modules removed - used outdated 3-word system
pub use ;
// Main API - Four-word encoding
pub use FourWordAdaptiveEncoder;
pub use ;
pub use ;
// Compression and IPv6 support modules
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use UniversalIpCompressor;
/// Version of the four-word networking library
pub const VERSION: &str = env!;