telegram_bot_raw/requests/_base/request_types/
json.rs1use serde::Serialize;
2use serde_json;
3
4use crate::requests::*;
5
6#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Hash, Serialize, Deserialize)]
7pub struct JsonRequestType<Request> {
8 phantom: ::std::marker::PhantomData<Request>,
9}
10
11impl<Request: Serialize> RequestType for JsonRequestType<Request> {
12 type Options = RequestUrl;
13 type Request = Request;
14
15 fn serialize(url: Self::Options, request: &Self::Request) -> Result<HttpRequest, Error> {
16 let body = serde_json::to_string(&request).map_err(ErrorKind::from)?;
17 Ok(HttpRequest {
18 url: url,
19 method: Method::Post,
20 body: Body::Json(body),
21 })
22 }
23}