tbotd/vendor/src/github.com/Sereal/Sereal/Go/sereal/TODO

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