pub trait MessageApi {
    // Required methods
    fn publish_message<'life0, 'async_trait>(
        &'life0 self,
        vhost: String,
        exchange: String,
        request: RabbitMqPublishMessageRequest,
    ) -> Pin<Box<dyn Future<Output = Result<RabbitMqPublishMessageResponse, RabbitMqClientError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn get_messages<'life0, 'async_trait>(
        &'life0 self,
        vhost: String,
        queue: String,
        options: RabbitMqGetMessagesOptions,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<RabbitMqMessage>, RabbitMqClientError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}