blaze 0.1.6

blazing fast http framework
Documentation
use crate::{
    internals::RespFuture,
    modules::header::ContentType,
    types::alias::*,
    types::http::{Responder, Response},
};

use serde::Serialize;

impl Responder for Response {
    fn respond(self: Box<Self>) -> RespFuture { Box::pin(async move { Ok(*self) }) }
}

impl<T: Serialize + Send + 'static> Responder for Json<T> {
    fn respond(self: Box<Self>) -> RespFuture { Box::pin(async move { Ok(Response::ok().json(&self.0)?.content_type(ContentType::json()).into()) }) }
}

impl Responder for String {
    fn respond(self: Box<Self>) -> RespFuture { Box::pin(async move { Ok(Response::ok().body(self.into_bytes()).content_type(ContentType::plaintext()).into()) }) }
}

impl Responder for Vec<u8> {
    fn respond(self: Box<Self>) -> RespFuture { Box::pin(async move { Ok(Response::ok().body(*self).content_type(ContentType::plaintext()).into()) }) }
}

impl Responder for &'static str {
    fn respond(self: Box<Self>) -> RespFuture { Box::pin(async move { Ok(Response::ok().body(self.as_bytes().to_vec()).content_type(ContentType::plaintext()).into()) }) }
}

impl Responder for &'static [u8] {
    fn respond(self: Box<Self>) -> RespFuture { Box::pin(async move { Ok(Response::ok().body(self.to_vec()).content_type(ContentType::plaintext()).into()) }) }
}