1
0
Fork 0
mirror of https://gitlab.com/msrd0/gotham-restful.git synced 2025-02-23 21:12:28 +00:00
deprecated-gotham-restful/src/result.rs

38 lines
691 B
Rust
Raw Normal View History

2019-09-26 17:24:40 +02:00
use crate::StatusCode;
use serde::Serialize;
use std::error::Error;
pub trait ResourceResult<R : Serialize, E : Serialize>
{
fn to_result(self) -> (StatusCode, Result<R, E>);
}
#[derive(Debug, Serialize)]
pub struct ResourceError
{
error : bool,
message : String
}
impl<T : ToString> From<T> for ResourceError
{
fn from(message : T) -> Self
{
Self {
error: true,
message: message.to_string()
}
}
}
impl<R : Serialize, E : Error> ResourceResult<R, ResourceError> for Result<R, E>
{
fn to_result(self) -> (StatusCode, Result<R, ResourceError>)
{
match self {
Ok(r) => (StatusCode::OK, Ok(r)),
Err(e) => (StatusCode::INTERNAL_SERVER_ERROR, Err(e.into()))
}
}
}