我嘗試將文件(例如JSON,但二進制文件也可以)序列化氧化鈉的結構(用於libsodium的鏽結合)的PublicKey
結構。序列化鈉氧化物的公鑰到JSON中
這裏是我的代碼:
extern crate serde;
extern crate serde_json;
extern crate sodiumoxide;
use serde::Serialize;
use serde_json::ser::Serializer;
use sodiumoxide::crypto::sign;
fn main() {
let (pk, _) = sign::gen_keypair();
let pk_ser = serde_json::to_string(&pk);
}
我收到以下錯誤信息:
error: the trait bound `sodiumoxide::crypto::sign::PublicKey: serde::Serialize` is not satisfied [E0277]
所以編譯器告訴我,PublicKey
應實施SERDE ::序列化特質。但它確實執行serde::Serialize
如上所述:https://dnaq.github.io/sodiumoxide/sodiumoxide/crypto/sign/ed25519/struct.PublicKey.html
那麼,什麼問題?
編輯:
Cargo.toml:
[package]
name = ...
version = ...
authors = ...
[dependencies]
serde = "*"
serde_json = "*"
sodiumoxide = "*"
一個確實需要知道這一點。我假設大多數初學者只使用crates.io。你有興趣在GitHub上寫一個問題嗎?如果沒有,我會做:-) – duesee
我會讓你這樣做:) –