serde-rs / json

Strongly typed JSON library for Rust
Apache License 2.0
4.7k stars 536 forks source link

Add Map::shift_insert() #1149

Closed joshka closed 2 weeks ago

joshka commented 2 weeks ago

This method inserts a key-value pair in the map at the given index. If the map did not have this key present, None is returned. If the map did have this key present, the key is moved to the new position, the value is updated, and the old value is returned.

This is useful when you want to insert a key-value pair at a specific position in the map, and is a necessary method when writing a JSON editor that can mutate the keys in a JSON object.

This is only enabled when the preserve-order feature flag is enabled.

map.shift_insert(0, "foo", "bar")

Mirrors the logic in IndexMap::shift_insert()