Skip to content

Conversation

@nmiyake
Copy link
Contributor

@nmiyake nmiyake commented Nov 25, 2025

Before this PR

After this PR

==COMMIT_MSG==
Updates the safejson.FromYAMLValue function such that it can handle converting input maps that have any key type that can marshalled by json.Marshal (string, number, and types that implement encoding.TextMarshaler).

Previously, only handled input maps where the key type was string, which is a subset of the types that can actually be marshalled by json.Marshal.
==COMMIT_MSG==

Possible downsides?

This changes the behavior for certain inputs such that inputs that would have previously failed will now succeed. However, I believe these changes are strictly improvements/better behavior, and cannot think of a realistic case where being more supportive of input types (properly converting maps when previous calls would have returned an error) would cause issues.


This change is Reviewable

Updates the safejson.FromYAMLValue function such that it can handle
converting input maps that have any key type that can marshalled by
json.Marshal (string, number, and types that implement encoding.TextMarshaler).

Previously, only handled input maps where the key type was string,
which is a subset of the types that can actually be marshalled by
json.Marshal.
@changelog-app
Copy link

changelog-app bot commented Nov 25, 2025

Successfully generated changelog entry!

Entry generated via PR title

To modify this entry, edit PR title using proper format.


📋Changelog Preview

🐛 Fixes

  • Updates the safejson.FromYAMLValue function such that it can handle converting input maps that have any key type that can marshalled by json.Marshal (string, number, and types that implement encoding.TextMarshaler).

    Previously, only handled input maps where the key type was string, which is a subset of the types that can actually be marshalled by json.Marshal. (#407)

Adds the ToMapWithJSONMarshalableKeys function, which is effectively
a better named and typed version of FromYAMLValue. Also updates naming
and documentation of private functions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants