問題タブ [serde]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rust - serde を含むプロジェクトがコンパイルできない
serde リポジトリから例を実行しようとすると、次のようになります。
エラーが発生します:
エラー:
rustc
ターゲット固有の情報について学習するための実行に失敗しました原因: プロセスが正常に終了しませんでした:
rustc - --crate-name _ --print=file-names --crate-type bin --crate-type proc-macro --crate-type rlib --target x86_64-unknown-linux-gnu
(終了コード: 101) --- stderr エラー: 未知のクレート タイプ:proc-macro
私の Rust バージョンは 1.13.0 で、Cargo.toml には次の依存関係があります。
他の依存関係や追加の構成を使用する必要がありますか?
serialization - 具体的な型ではなく、特性に逆シリアル化するにはどうすればよいですか?
私は、バイトが最終的にパイプに送られ、再構築され、メソッドが呼び出される構造体のシリアライゼーションを行おうとしています。
これらの構造体が適切に実装する特性を作成し、シリアライゼーションに serde と serde-cbor を使用しています。
トレイトをタイプとして使用してバイトを再構築しようとすると (送信されている基になるオブジェクトがわからない場合)、コンパイラはトレイトがトレイトを実装していないと文句を言いSized
ます。
コンパイラは構造体の大きさを知らず、構造体のバイトを並べる方法も知らないので、それは理にかなっていると思います。オブジェクトをデシリアライズして実際の構造体型を指定する行を変更すると、次のように機能します。
このシリアル化 + ポリモーフィズム動作を達成するためのより良いパターンはありますか?