Ich versuche, die PublicKey
Struktur von Natriumoxid (Rust Bindings für libsodium) in eine Datei (z. B. JSON, aber binäre wäre auch in Ordnung) zu serialisieren.Serialize Natrium Oxyde 'PublicKey in JSON
Hier ist mein Code:
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);
}
bekomme ich folgende Fehlermeldung:
error: the trait bound `sodiumoxide::crypto::sign::PublicKey: serde::Serialize` is not satisfied [E0277]
So ist der Compiler sagt mir, dass PublicKey
die serde implementieren sollten :: Serialize Merkmal. Aber es implementiert serde::Serialize
wie hier angegeben: https://dnaq.github.io/sodiumoxide/sodiumoxide/crypto/sign/ed25519/struct.PublicKey.html
Also, was ist das Problem?
Edit:
Cargo.toml:
[package]
name = ...
version = ...
authors = ...
[dependencies]
serde = "*"
serde_json = "*"
sodiumoxide = "*"
Man muss wirklich das wissen. Ich nehme an, die meisten Anfänger benutzen nur crates.io. Sind Sie daran interessiert, ein Problem auf GitHub zu schreiben? Wenn nicht, werde ich tun :-) – duesee
Ich lass dich das tun :) –