postcard — Crate 詳細
postcard
Mature no_std
no_std 向けのコンパクトなシリアライズ/デシリアライズライブラリ。serde 互換で、バッファに対して直接エンコード/デコードでき、組み込みの通信(バイナリプロトコル)に適します。
A no_std-focused, compact serde-compatible serialization format designed for embedded use (buffer-oriented encode/decode).
コード例
ヒープ不要で、あらかじめ用意したバッファに対してエンコード/デコードできます。
#![no_std]
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, PartialEq, Debug)]struct Msg { id: u16, value: i32,}
fn encode(buf: &mut [u8]) -> usize { let msg = Msg { id: 42, value: -7 }; let used = postcard::to_slice(&msg, buf).unwrap().len(); used}
fn decode(buf: &[u8]) -> Msg { postcard::from_bytes(buf).unwrap()}