- 643 名前:623 [2017/08/21(月) 02:32:19.49 ID:FwjdF0gP.net]
- >>628
> ところで、Value::Arrayには複数種類の型の値を入れることを想定している? はい、いろんな型を入れたいです。 今現在↓みたいになっていて(コンパイルできない)改行が多くて書き込みできなかったので改行を減らしてあります。 pub enum Value<'a> { Nil, Bool(bool), Int8(i8), Int16(i16), Int32(i32), Int64(i64), UInt8(u8), UInt16(u16), UInt32(u32), UInt64(u64), Float32(f32), Float64(f64), Binary(Vec<u8>), String(String), Array(Vec<&'a Serialize>), Map(HashMap<String, &'a Serialize>), } これをライブラリとして公開して、そのライブラリの使用者が struct UUID { uuid: u128, } impl Serialize for UUID { fn serialize(&self) -> Vec<u8> { unimplemented!() } } こんな感じにSerializeをUUIDに実装すればArray(Vec<&'a Serialize>)の中に入れられるのではないかと思い実装しました(だめだったのですが…) serde_jsonも参考にしたのですがArrayの中にValueを入れてしまうとライブラリの使用者が型を追加できないのではと思って上の感じにしました。
|

|