Bincode payload extractor for Actix Web
use actix_bincode::Bincode;
use bincode::{Decode, Encode};
#[derive(Decode, Encode)]
pub struct Object {
pub num: i32,
pub text: String,
}
async fn index(object: Bincode<Object>) -> HttpResponse {
println!("num: {}", object.num);
println!("text: {}", object.text);
let config = bincode::config::standard();
let body = bincode::encode_to_vec(object.into_inner(), config).unwrap();
HttpResponse::Ok().body(body)
}
use actix_bincode::BincodeSerde;
use serde::{Deserialize, Serialize};
#[derive(Deserialize, Serialize)]
pub struct Object {
pub num: i32,
pub text: String,
}
async fn index(object: BincodeSerde<Object>) -> HttpResponse {
println!("num: {}", object.num);
println!("text: {}", object.text);
let config = bincode::config::standard();
let body = bincode::serde::encode_to_vec(object.into_inner(), config).unwrap();
HttpResponse::Ok().body(body)
}
Extractor tries to read configuration from actix app data, and defaults to standard if none present:
let config = bincode::config::standard().with_big_endian();
let app = App::new().app_data(config);
This project is licensed under
- MIT license (LICENSE or https://opensource.org/licenses/MIT)