/// Pushes a `Request` type message into the relevant output queue.
/// This is preceded by withdrawing the cycles for sending the `Request` and
/// receiving and processing the corresponding `Response`.
/// If cycles withdrawal succeeds, the function also reserves a slot on the
/// matching input queue for the `Response`.
///
/// # Errors
///
/// Returns a `QueueFull` error along with the provided message if either
/// the output queue or the matching input queue is full.
///
/// Returns a `CanisterOutOfCycles` error along with the provided message if
/// the canister's cycles balance is not sufficient to pay for cost of
/// sending the message.
Pushes a `Request` type message into the relevant output queue.
This is preceded by withdrawing the cycles for sending the `Request` and
receiving and processing the corresponding `Response`.
If cycles withdrawal succeeds, the function also reserves a slot on the
matching input queue for the `Response`.
Pushes a ` Request ` type message into the relevant output queue . This is preceded by withdrawing the cycles for sending the ` Request ` and receiving and processing the corresponding ` Response ` . If cycles withdrawal succeeds the function also reserves a slot on the matching input queue for the ` Response ` .
pub fn push_output_request(&mut self, msg: Request) -> Result<(), (StateError, Request)> {
        assert_eq!(
            msg.sender, self.canister_id,
            "Expected `Request` to have been sent by canister ID {}, but instead got {}",
            self.canister_id, msg.sender
        );
        self.queues.push_output_request(msg)
    }
pub fn push_output_request ( & mut self , msg : Request ) -> Result < ( ) , ( StateError , Request ) > { assert_eq ! ( msg sender self canister_id " " self canister_id msg sender ) ; self . queues . push_output_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
errors
Returns a `QueueFull` error along with the provided message if either
the output queue or the matching input queue is full.

Returns a `CanisterOutOfCycles` error along with the provided message if
the canister's cycles balance is not sufficient to pay for cost of
sending the message.
Returns a ` QueueFull ` error along with the provided message if either the output queue or the matching input queue is full . Returns a ` CanisterOutOfCycles ` error along with the provided message if the canister ' s cycles balance is not sufficient to pay for cost of sending the message .