16 lines
966 B
Plaintext
16 lines
966 B
Plaintext
TODO:
|
|
- lots of duplicatish code to remove:
|
|
decode cases are similar too: array/ref, map/ref/ array/binary/short-binary
|
|
- discard values that don't need to be built
|
|
- profiling shows that we can spend a lot of time setting values in maps that we might throw away
|
|
- if we don't need to keep the value, we should try to not actually create it in memory
|
|
- how do we handle hashes?
|
|
: only string keys are supported -- do we call value.String() or panic()?
|
|
: what other coersions (ints <-> strings)
|
|
- roundtrip test: perl obj -> perl-sereal stream -> go1 obj -> go-sereal stream -> go2 obj, DeepEqual(go1, go2)
|
|
- class names need their own string table (for OBJECTV)
|
|
- string table should have hash keys only? (unless dedup strings is true?)
|
|
- string vs. byte array handling?
|
|
- match 'ptr->array':ARRAYREF and 'ptr->hash':HASHREF
|
|
- go can't do this in one-pass: we don't have ref counts
|