3939//!
4040//! ## Quick Start
4141//!
42- //! ```rust
42+ //! ```rust,no_run
4343//! use mill_io::{EventLoop, EventHandler};
4444//! use mio::{net::TcpListener, Interest, Token};
45+ //! use std::net::SocketAddr;
4546//!
4647//! struct EchoHandler;
4748//!
5758//! let event_loop = EventLoop::default();
5859//!
5960//! // Bind to localhost
60- //! let mut listener = TcpListener::bind("127.0.0.1:8080")?;
61+ //! let addr: SocketAddr = "127.0.0.1:8080".parse()?;
62+ //! let mut listener = TcpListener::bind(addr)?;
6163//!
6264//! // Register the listener with a handler
6365//! event_loop.register(
7880//!
7981//! ## Advanced Configuration
8082//!
81- //! ```rust
83+ //! ```rust,no_run
8284//! use mill_io::EventLoop;
8385//!
84- //! // Create event loop with custom configuration
85- //! let event_loop = EventLoop::new(
86- //! 8, // 8 worker threads
87- //! 1024, // Handle up to 1024 events per poll
88- //! 100 // 100ms poll timeout
89- //! )?;
86+ //! fn main() -> Result<(), Box<dyn std::error::Error>> {
87+ //! // Create event loop with custom configuration
88+ //! let event_loop = EventLoop::new(
89+ //! 8, // 8 worker threads
90+ //! 1024, // Handle up to 1024 events per poll
91+ //! 100 // 100ms poll timeout
92+ //! )?;
93+ //! Ok(())
94+ //! }
9095//! ```
9196//!
9297//! ## Module Overview
@@ -158,6 +163,7 @@ pub mod prelude {
158163/// ```rust,no_run
159164/// use mill_io::{EventLoop, EventHandler};
160165/// use mio::{net::TcpListener, Interest, Token};
166+ /// use std::net::SocketAddr;
161167///
162168/// struct MyHandler;
163169/// impl EventHandler for MyHandler {
@@ -167,7 +173,8 @@ pub mod prelude {
167173/// }
168174///
169175/// let event_loop = EventLoop::default();
170- /// let mut listener = TcpListener::bind("127.0.0.1:0")?;
176+ /// let addr: SocketAddr = "127.0.0.1:0".parse()?;
177+ /// let mut listener = TcpListener::bind(addr)?;
171178///
172179/// event_loop.register(&mut listener, Token(0), Interest::READABLE, MyHandler)?;
173180/// event_loop.run()?; // Blocks until stopped
@@ -268,6 +275,7 @@ impl EventLoop {
268275 /// ```rust,no_run
269276 /// use mill_io::{EventLoop, EventHandler};
270277 /// use mio::{net::TcpListener, Interest, Token};
278+ /// use std::net::SocketAddr;
271279 ///
272280 /// struct ConnectionHandler;
273281 /// impl EventHandler for ConnectionHandler {
@@ -277,7 +285,8 @@ impl EventLoop {
277285 /// }
278286 ///
279287 /// let event_loop = EventLoop::default();
280- /// let mut listener = TcpListener::bind("0.0.0.0:8080")?;
288+ /// let addr: SocketAddr = "0.0.0.0:8080".parse()?;
289+ /// let mut listener = TcpListener::bind(addr)?;
281290 ///
282291 /// event_loop.register(
283292 /// &mut listener,
@@ -324,14 +333,16 @@ impl EventLoop {
324333 /// ```rust,no_run
325334 /// use mill_io::{EventLoop, EventHandler};
326335 /// use mio::{net::TcpListener, Interest, Token};
336+ /// use std::net::SocketAddr;
327337 ///
328338 /// struct Handler;
329339 /// impl EventHandler for Handler {
330340 /// fn handle_event(&self, _: &mio::event::Event) {}
331341 /// }
332342 ///
333343 /// let event_loop = EventLoop::default();
334- /// let mut listener = TcpListener::bind("127.0.0.1:0")?;
344+ /// let addr: SocketAddr = "127.0.0.1:0".parse()?;
345+ /// let mut listener = TcpListener::bind(addr)?;
335346 /// let token = Token(0);
336347 ///
337348 /// // Register
@@ -364,25 +375,6 @@ impl EventLoop {
364375 /// - The polling mechanism fails
365376 /// - The thread pool encounters a fatal error
366377 /// - System resources are exhausted
367- ///
368- /// # Examples
369- ///
370- /// ```rust,no_run
371- /// use mill_io::EventLoop;
372- /// use std::thread;
373- /// use std::time::Duration;
374- ///
375- /// let event_loop = EventLoop::default();
376- ///
377- /// // Stop the loop after 5 seconds (in another thread)
378- /// let event_loop_clone = event_loop.clone(); // Note: EventLoop would need to implement Clone
379- /// thread::spawn(move || {
380- /// thread::sleep(Duration::from_secs(5));
381- /// // event_loop_clone.stop(); // Would stop the loop
382- /// });
383- ///
384- /// // This blocks until stopped
385- /// // event_loop.run()?;
386378 /// # Ok::<(), Box<dyn std::error::Error>>(())
387379 /// ```
388380 pub fn run ( & self ) -> Result < ( ) > {
@@ -415,16 +407,16 @@ impl EventLoop {
415407 ///
416408 /// // Start event loop in background thread
417409 /// let handle = thread::spawn(move || {
418- /// event_loop_clone.run()
410+ /// // In a real application, you would handle the result properly
411+ /// let _ = event_loop_clone.run();
419412 /// });
420413 ///
421414 /// // Stop after some time
422415 /// thread::sleep(std::time::Duration::from_secs(1));
423416 /// event_loop.stop();
424417 ///
425418 /// // Wait for shutdown
426- /// handle.join().unwrap();
427- /// # Ok::<(), Box<dyn std::error::Error>>(())
419+ /// let _ = handle.join();
428420 /// ```
429421 pub fn stop ( & self ) {
430422 let shutdown_handler = self . reactor . get_shutdown_handle ( ) ;
0 commit comments