首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用serde_cbor打印有效的CBOR?

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

Stack Overflow用户
提问于 2016-05-17 19:05:46
回答 1查看 251关注 0票数 0

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

代码语言:javascript
复制
#![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!("");
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-17 19:45:53

以下是您的输出和正确的输出:

代码语言:javascript
复制
a2 61 78 16 17 91
a2 61 78 01 61 79 01

你看到问题了吗?

代码语言:javascript
复制
a2 61 78  1 61 79  1
a2 61 78 01 61 79 01

您正在以十六进制的形式打印值,但不是将它们填充到两个字符中:

代码语言:javascript
复制
print!("{:02x}", byte);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37284352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档