use async_trait::async_trait;
use crate::Rocket;
use crate::flow_ctrl::Next;
use crate::plugin::Plugin;
#[derive(Clone, Copy, Debug, Default)]
pub struct AddPayloadBodyPlugin;
#[async_trait]
impl Plugin for AddPayloadBodyPlugin {
fn name(&self) -> &'static str {
"AddPayloadBodyPlugin"
}
async fn assembly(&self, rocket: &mut Rocket, next: Next<'_>) -> crate::Result<()> {
if rocket.config.body.is_none() && !rocket.payload.is_empty() {
rocket.config.body = Some(rocket.packer.pack(&rocket.payload)?);
}
next.call(rocket).await
}
}