gpt4 book ai didi

rust - 如何使用 serde_cbor 打印有效的 CBOR?

转载 作者:行者123 更新时间:2023-11-29 08:27:36 24 4
gpt4 key购买 nike

我想将一个结构序列化为 CBOR 并将其打印出来,但是我不知道如何验证打印的值是否正确。我用了CBOR.me ,但每次我将输出放在 cbor.me 中时,它都会报告 Out of bytes to decode: 753 + 19 > 753 其中 753 是提供的 CBOR 字节数,无论字节数如何,我都会收到此错误。无论我是否使用 serde_cbor::to_vec 都会发生这种情况, 或 serde_cbor::to_vec_sd .

#![feature(custom_derive, plugin)]
#![plugin(serde_macros)]

extern crate serde;
extern crate serde_cbor;


#[derive(Deserialize, Serialize)]
struct Points {
x: u8,
y: u8,
}


fn main() {
let points = Points {x: 1, y: 1};
let cbor = serde_cbor::to_vec(&points);

for byte in cbor {
print!("{:x}", byte);
}

println!("");
}

最佳答案

这是你的输出和正确的输出:

a2 61 78 16 17 91
a2 61 78 01 61 79 01

你看到问题了吗?

a2 61 78  1 61 79  1
a2 61 78 01 61 79 01

您将值打印为十六进制,但没有将它们补零为 2 个字符:

print!("{:02x}", byte);

关于rust - 如何使用 serde_cbor 打印有效的 CBOR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37284352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com