awmpde_structs 0.7.1

awmpde used for deriving multipart request for actix web 3
Documentation
use super::*;

use chrono::offset::{FixedOffset, Local, Utc};
use chrono::{DateTime, NaiveDate, NaiveDateTime};

macro_rules! from_field(
    { $ty:ty } => {
        impl FromField for $ty {
            type Error = serde_json::error::Error;
            type Future = LocalBoxFuture<'static, Result<Self, Self::Error>>;

            fn from_field(field: actix_multipart::Field) -> Self::Future {
                let vec = Vec::<u8>::from_field(field);
                async move {
                    let vec = vec.await.unwrap();
                    Ok(serde_json::from_reader(&*vec)?)
                }
                .boxed_local()
            }
        }
    }
);

from_field!(NaiveDate);
from_field!(NaiveDateTime);
from_field!(DateTime<FixedOffset>);
from_field!(DateTime<Local>);
from_field!(DateTime<Utc>);