Crates.io | thrift_codec |
lib.rs | thrift_codec |
version | 0.3.2 |
source | src |
created_at | 2017-10-12 14:09:06.360805 |
updated_at | 2024-06-11 23:50:23.329514 |
description | A library for encoding/decoding binaries specified by the thrift protocol |
homepage | https://github.com/sile/thrift_codec |
repository | https://github.com/sile/thrift_codec |
max_upload_size | |
id | 35402 |
size | 89,148 |
This crate provides functionalities for encoding/decoding Thrift protocol.
Encodes a message:
use thrift_codec::CompactEncode;
use thrift_codec::data::Struct;
use thrift_codec::message::Message;
let message = Message::oneway("foo_method", 1, Struct::from(("arg1", 2)));
let mut buf = Vec::new();
message.compact_encode(&mut buf).unwrap();
assert_eq!(
buf,
[130, 129, 1, 10, 102, 111, 111, 95, 109, 101, 116,
104, 111, 100, 24, 4, 97, 114, 103, 49, 21, 4, 0]
);
Decodes the above binary:
use thrift_codec::CompactDecode;
use thrift_codec::data::Struct;
use thrift_codec::message::Message;
let bytes = [
130, 129, 1, 10, 102, 111, 111, 95, 109, 101, 116,
104, 111, 100, 24, 4, 97, 114, 103, 49, 21, 4, 0
];
let message = Message::compact_decode(&mut &bytes[..]).unwrap();
let expected = Message::oneway("foo_method", 1, Struct::from(("arg1", 2)));
assert_eq!(message, expected);