Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IndexMap support #270

Open
RReverser opened this issue Mar 25, 2023 · 3 comments
Open

IndexMap support #270

RReverser opened this issue Mar 25, 2023 · 3 comments
Labels
easy enhancement New feature or request

Comments

@RReverser
Copy link

serde-json has support for order-preserving representation of serde_json::Value under feature preserve_order, which switches Object representation from regular HashMap to IndexMap.

Is this something possible to add in simd-json as well?

Stable, ordered, roundtrips are useful in many applications of JSON editing.

@Licenser
Copy link
Member

Heya, that should be doable and fairly easy.

If you want to take a stab at it this is where the code for the value lives, it might need some work in value-trait, not 100% sure haven't checked, too but that should be copy & pasta for the most part.

Otherwise I'll put it on the todo list but can't promise when I'll get around to it :)

@Licenser Licenser added enhancement New feature or request easy labels Mar 25, 2023
@RReverser
Copy link
Author

I decided to try the library on just the parsing parts for my large datastructures for now, but found it's actually slightly slower than serde-json, so probably not going to work on enhancements for now. Not sure whether that's just because of Serde layers + custom Deserialize implementations involved or something else.

@Licenser
Copy link
Member

It's hard to say without knowing more about the parsing, the data structure and the system it's running on. For large datastructures simd-json should be significantly faster, but there is a should in there ;). That said it's worth using simd-json-derive instead of serde-derive as it is better optimized for json parsing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
easy enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants