Mercurial > projects > orange
comparison orange/serialization/Serializer.d @ 14:6e454595b203
Fixed (de)serializing of arrays and associative arrays.
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sun, 08 Aug 2010 21:24:11 +0200 |
parents | 99c52d46822a |
children | 9f6064f9505a |
comparison
equal
deleted
inserted
replaced
13:698b7c558bfb | 14:6e454595b203 |
---|---|
194 | 194 |
195 private void serializeArray (T) (T value, DataType key) | 195 private void serializeArray (T) (T value, DataType key) |
196 { | 196 { |
197 archive.archive(value, key, { | 197 archive.archive(value, key, { |
198 foreach (i, e ; value) | 198 foreach (i, e ; value) |
199 archive.archive(e, toDataType(i)); | 199 serialize(e, toDataType(i)); |
200 }); | 200 }); |
201 } | 201 } |
202 | 202 |
203 private void serializeAssociativeArray (T) (T value, DataType key) | 203 private void serializeAssociativeArray (T) (T value, DataType key) |
204 { | 204 { |
205 archive.archive(value, key, { | 205 archive.archive(value, key, { |
206 foreach(k, v ; value) | 206 foreach(k, v ; value) |
207 archive.archive(v, toDataType(k)); | 207 serialize(v, toDataType(k)); |
208 }); | 208 }); |
209 } | 209 } |
210 | 210 |
211 private void serializePointer (T) (T value, DataType key) | 211 private void serializePointer (T) (T value, DataType key) |
212 { | 212 { |
367 | 367 |
368 private T deserializeArray (T) (DataType key) | 368 private T deserializeArray (T) (DataType key) |
369 { | 369 { |
370 return archive.unarchive!(T)(key, (T value) { | 370 return archive.unarchive!(T)(key, (T value) { |
371 foreach (i, ref e ; value) | 371 foreach (i, ref e ; value) |
372 e = archive.unarchive!(typeof(e))(toDataType(i)); | 372 e = deserializeInternal!(typeof(e))(toDataType(i)); |
373 | 373 |
374 return value; | 374 return value; |
375 }); | 375 }); |
376 } | 376 } |
377 | 377 |