Skip to content

Add Map::shift_insert()#1149

Merged
dtolnay merged 1 commit intoserde-rs:masterfrom
joshka:master
Jun 30, 2024
Merged

Add Map::shift_insert()#1149
dtolnay merged 1 commit intoserde-rs:masterfrom
joshka:master

Conversation

@joshka
Copy link
Copy Markdown
Contributor

@joshka joshka commented Jun 30, 2024

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()

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.
Copy link
Copy Markdown
Member

@dtolnay dtolnay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@dtolnay dtolnay merged commit c17e63f into serde-rs:master Jun 30, 2024
takumi-earth pushed a commit to earthlings-dev/json that referenced this pull request Jan 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants