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

Add Map::shift_insert() #1149

Merged
merged 1 commit into from
Jun 30, 2024
Merged

Add Map::shift_insert() #1149

merged 1 commit into from
Jun 30, 2024

Conversation

joshka
Copy link
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
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
13 checks passed
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