Skip to content

chore(deps): bump serde-saphyr from 0.0.16 to 0.0.17#52

Closed
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/cargo/serde-saphyr-0.0.17
Closed

chore(deps): bump serde-saphyr from 0.0.16 to 0.0.17#52
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/cargo/serde-saphyr-0.0.17

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Feb 3, 2026

Bumps serde-saphyr from 0.0.16 to 0.0.17.

Release notes

Sourced from serde-saphyr's releases.

0.0.17 Borrowed cows

serde-saphyr now supports zero-copy deserialization for string fields when using from_str or from_slice. This allows deserializing into &str fields that borrow directly from the input, avoiding allocation overhead.

use serde::Deserialize;
#[derive(Debug, Deserialize)]
struct Data<'a> {
name: &'a str,
value: i32,
}
let yaml = "name: hello\nvalue: 42\n";
let data: Data = serde_saphyr::from_str(yaml).unwrap();
assert_eq!(data.name, "hello");

Borrowing works for any scalar whose parsed value exists verbatim in the input. If this is not the case, use Cow<str> instead of &str. Reader-based entry points (from_reader) require DeserializeOwned and cannot return borrowed values. For maximum flexibility, use Cow<'a, str> which borrows when possible and owns when transformation is required.

New features

  • WebAssembly support (#64), library now builds on this platform and has CI builds for them with test suite passing (wasm32-unknown-unknown and wasm32-wasip).
  • Snippet rendering extended to the methods that take the Reader. As the Reader cannot provide the surrounding text on error, a small ring buffer was implemented to allow rendering the snippet later. Snippets can now be rendered even for large documents that cannot be easily opened with an arbitrary text editor.
  • It is now possible to request that all strings be quoted — using single quotes when no escape sequences are present, and double quotes otherwise. This is very explicit and unambiguous, but such YAML may be less readable for humans. Line wrapping is disabled in this mode.
  • Improved string folding in serializer, YAML-compliant folding of strings prefixed with whitespace (using >n ).
  • Budget reporter is now closure and no longer function. When writing yva, we found that the function is ergonomically poor for anything beyond printing logs, as it cannot capture variable references.
  • Reduced some too aggressive quoting, strings like a[b], -one or a,b,c are clear and valid as unquoted scalars.
  • Old YAML 1.2 booleans (n, no, off, etc.) are quoted by default, but this can be turned off by setting yaml_12 to true in serializer options. We found the quoting of the key 'y ' (as a coordinate - x, y, z) unnecessarily distracting.
  • Long lines containing line breaks are automatically deserialized into literal block scalars for better readability.

Preparing API for stable releases (1.x.x), where "breaking change" requirements are much more strict.

  • All public enums are now marked #[non_exhaustive]. This requires downstream code to include a wildcard (_) arm when matching on these enums, allowing us to add new variants in future releases without breaking user code. We acknowledge that introducing #[non_exhaustive] is itself a formally breaking change; however, since the crate is still in the 0.0.x series, we consider this the right time to make this adjustment.
  • For the same reason, Options, SerializerOptions, and Budget structures should also now be created by macros:
let options = serde_saphyr::options! {
     budget: serde_saphyr::budget! {
         max_documents: 2,
     },
     duplicate_keys: DuplicateKeyPolicy::LastWins,
 };

Otherwise, we would need to incremente major version number - breaking changes - every time we add a field to these structures, and we do often. Adding #[non_exhaustive] makes them impossible to construct directly anyway, so some other approach must be tried. We decided to use macros. The old usage is still permitted but should be considered deprecated right now. We will add deprecation annotations in the next release, and the macro approach will be the only one in the first 1.x.x release. #[non_exhaustive] will be placed at this point.

Commits
  • 7310790 Some clarifying work on two bugs that were features
  • dce87c9 Grafana tests
  • 035a486 Grafana tests
  • 66d4118 Relax some quoting that was too aggressive.
  • e6da183 README clarification
  • 0e69c51 Implemented grafane-like auto-quoting of boolean-like keys, user can opt out ...
  • 2d5f117 Grafana stuff so far can be git ignored
  • 3f80c48 Removed deprecation markers for now from budget, options and ser_options. Mac...
  • 46e26e4 Disable miri for tests that run the compiler.
  • 2037888 Final tweaks in Cargo.toml before 0.0.17
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [serde-saphyr](https://github.com/bourumir-wyngs/serde-saphyr) from 0.0.16 to 0.0.17.
- [Release notes](https://github.com/bourumir-wyngs/serde-saphyr/releases)
- [Commits](bourumir-wyngs/serde-saphyr@0.0.16...0.0.17)

---
updated-dependencies:
- dependency-name: serde-saphyr
  dependency-version: 0.0.17
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Feb 3, 2026
@dependabot @github
Copy link
Contributor Author

dependabot bot commented on behalf of github Feb 3, 2026

Looks like serde-saphyr is up-to-date now, so this is no longer needed.

@dependabot dependabot bot closed this Feb 3, 2026
@dependabot dependabot bot deleted the dependabot/cargo/serde-saphyr-0.0.17 branch February 3, 2026 19:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants