pub fn push(&mut self, stream: &mut store::Ptr) -> bool {
        log::trace!("Queue::push");

        if N::is_queued(stream) {
            log::trace!(" -> already queued");
            return false;
        }

        N::set_queued(stream, true);

        // The next pointer shouldn't be set
        debug_assert!(N::next(stream).is_none());

        // Queue the stream
        match self.indices {
            Some(ref mut idxs) => {
                log::trace!(" -> existing entries");

                // Update the current tail node to point to `stream`
                let key = stream.key();
                N::set_next(&mut stream.resolve(idxs.tail), Some(key));

                // Update the tail pointer
                idxs.tail = stream.key();
            }
            None => {
                log::trace!(" -> first entry");
                self.indices = Some(store::Indices {
                    head: stream.key(),
                    tail: stream.key(),
                });
            }
        }

        true
    }
/// Queue the stream.
///
/// If the stream is already contained by the list, return `false`.
Queue the stream.
If the stream is already contained by the list, return `false`.
Queue the stream . If the stream is already contained by the list return ` false ` .
pub fn push(&mut self, stream: &mut store::Ptr) -> bool {
        log::trace!("Queue::push");
        if N::is_queued(stream) {
            log::trace!(" -> already queued");
            return false;
        }
        N::set_queued(stream, true);
        // The next pointer shouldn't be set
        debug_assert!(N::next(stream).is_none());
        // Queue the stream
        match self.indices {
            Some(ref mut idxs) => {
                log::trace!(" -> existing entries");
                // Update the current tail node to point to `stream`
                let key = stream.key();
                N::set_next(&mut stream.resolve(idxs.tail), Some(key));
                // Update the tail pointer
                idxs.tail = stream.key();
            }
            None => {
                log::trace!(" -> first entry");
                self.indices = Some(store::Indices {
                    head: stream.key(),
                    tail: stream.key(),
                });
            }
        }
        true
    }
pub fn push ( & mut self , stream : & mut store :: Ptr ) -> bool { log :: trace ! ( " " ) ; if N :: is_queued ( stream ) { log :: trace ! ( " " ) ; return false ; } N :: set_queued ( stream , true ) ; // The next pointer shouldn't be set debug_assert ! ( N next ( stream ) is_none ( ) ) ; // Queue the stream match self . indices { Some ( ref mut idxs ) => { log :: trace ! ( " " ) ; // Update the current tail node to point to `stream` let key = stream . key ( ) ; N :: set_next ( & mut stream . resolve ( idxs . tail ) , Some ( key ) ) ; // Update the tail pointer idxs . tail = stream . key ( ) ; } None => { log :: trace ! ( " " ) ; self . indices = Some ( store :: Indices { head : stream . key ( ) , tail : stream . key ( ) , } ) ; } } true }
Queue the stream.
Queue the stream .
&mut self
stream
&mut store::Ptr