fn clone(&self) -> DelayQueue<T> {
        DelayQueue {
            shared_data: self.shared_data.clone(),
        }
    }
/// Returns a new `DelayQueue` that points to the same underlying data.
///
/// This method can be used to share a queue between different threads.
///
/// # Examples
///
/// Basic usage:
///
/// ```no_run
/// use delay_queue::{Delay, DelayQueue};
/// use std::time::Duration;
/// use std::thread;
///
/// let mut queue = DelayQueue::new();
///
/// queue.push(Delay::for_duration("1st", Duration::from_secs(1)));
///
/// let mut cloned_queue = queue.clone();
///
/// let handle = thread::spawn(move || {
///     println!("First pop: {}", cloned_queue.pop().value);
///     println!("Second pop: {}", cloned_queue.pop().value);
/// });
///
/// queue.push(Delay::for_duration("2nd", Duration::from_secs(2)));
///
/// handle.join().unwrap();
/// ```
Returns a new `DelayQueue` that points to the same underlying data.
This method can be used to share a queue between different threads.
Returns a new ` DelayQueue ` that points to the same underlying data . This method can be used to share a queue between different threads .
fn clone(&self) -> DelayQueue<T> {
        DelayQueue {
            shared_data: self.shared_data.clone(),
        }
    }
fn clone ( & self ) -> DelayQueue < T > { DelayQueue { shared_data : self . shared_data . clone ( ) , } }
Returns a new `DelayQueue` that points to the same underlying data.
Returns a new ` DelayQueue ` that points to the same underlying data .
&self
examples
Basic usage.

```no_run
use delay_queue::{Delay, DelayQueue};
use std::time::Duration;
use std::thread.

let mut queue = DelayQueue::new().

queue.push(Delay::for_duration("1st", Duration::from_secs(1))).

let mut cloned_queue = queue.clone().

let handle = thread::spawn(move || {
println!("First pop: {}", cloned_queue.pop().value);
println!("Second pop: {}", cloned_queue.pop().value);
}).

queue.push(Delay::for_duration("2nd", Duration::from_secs(2))).


Basic usage . ` ` ` no_run use delay_queue :: { Delay DelayQueue } ; use std :: time :: Duration ; use std :: thread . let mut queue = DelayQueue :: new () . queue . push ( Delay :: for_duration ( " 1st " Duration :: from_secs ( 1 ))) . let mut cloned_queue = queue . clone () . let handle = thread :: spawn ( move || { println! ( " First pop : {} " cloned_queue . pop () . value ) ; println! ( " Second pop : {} " cloned_queue . pop () . value ) ; } ) . queue . push ( Delay :: for_duration ( " 2nd " Duration :: from_secs ( 2 ))) .