use std::io::{Read, Write};
use super::{Serializer, Deserializer, Serialize, Deserialize};
use mime::Mime;
use ::Result;
#[derive(Debug)]
pub struct NoSerializer;
impl Serializer for NoSerializer {
fn serialize<T: Serialize, W: Write>(&self, _: &T, _: &mut W) -> Result<()> {
Err(NoSerializeError::Serialize.into())
}
fn content_type(&self) -> Option<Mime> {
None
}
}
#[derive(Debug)]
pub struct NoDeserializer;
impl Deserializer for NoDeserializer {
fn deserialize<T: Deserialize, R: Read>(&self, _: &mut R) -> Result<T> {
Err(NoSerializeError::Deserialize.into())
}
}
quick_error! {
#[derive(Debug)]
pub enum NoSerializeError {
Serialize {
description("A request method requested serialization, but no serializer was provided")
}
Deserialize {
description("A request method requested deserialization, but no deserializer was provided")
}
}
}