pub fn push_output_request(&mut self, msg: Request) -> Result<(), (StateError, Request)> {
        let (input_queue, output_queue) = self.get_or_insert_queues(&msg.receiver);

        if let Err(e) = output_queue.check_has_slot() {
            return Err((e, msg));
        }
        if let Err(e) = input_queue.reserve_slot() {
            return Err((e, msg));
        }

        output_queue.push_request(msg)
    }
/// Pushes a `Request` type message into the relevant output queue. Also
/// reserves a slot for the eventual response on the matching input queue.
///
/// # Errors
///
/// Returns a `QueueFull` error along with the provided message if either
/// the output queue or the matching input queue is full.
Pushes a `Request` type message into the relevant output queue. Also
reserves a slot for the eventual response on the matching input queue.
Pushes a ` Request ` type message into the relevant output queue . Also reserves a slot for the eventual response on the matching input queue .
pub fn push_output_request(&mut self, msg: Request) -> Result<(), (StateError, Request)> {
        let (input_queue, output_queue) = self.get_or_insert_queues(&msg.receiver);
        if let Err(e) = output_queue.check_has_slot() {
            return Err((e, msg));
        }
        if let Err(e) = input_queue.reserve_slot() {
            return Err((e, msg));
        }
        output_queue.push_request(msg)
    }
pub fn push_output_request ( & mut self , msg : Request ) -> Result < ( ) , ( StateError , Request ) > { let ( input_queue , output_queue ) = self . get_or_insert_queues ( & msg . receiver ) ; if let Err ( e ) = output_queue . check_has_slot ( ) { return Err ( ( e , msg ) ) ; } if let Err ( e ) = input_queue . reserve_slot ( ) { return Err ( ( e , msg ) ) ; } output_queue . push_request ( msg ) }
Pushes a `Request` type message into the relevant output queue.
Pushes a ` Request ` type message into the relevant output queue .
&mut self
msg
Request
&mut self
msg
Request
errors
Returns a `QueueFull` error along with the provided message if either
the output queue or the matching input queue is full.
Returns a ` QueueFull ` error along with the provided message if either the output queue or the matching input queue is full .