Conversation
…pinned actions Add a clippy job (--all-targets --all-features, -D warnings) and a docs job (RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --all-features) so lint and rustdoc regressions fail CI. Harden and streamline the workflow itself: top-level read-only permissions, a concurrency group that cancels superseded runs, and workflow_dispatch for manual runs. Pin actions/checkout by full SHA to match release.yml, and add Swatinem/rust-cache (also SHA-pinned) to the compiling jobs. Run the feature-matrix test legs on ubuntu only; windows and macos keep the default-feature leg since the features are platform-independent.
Unify the FlattenedSequenceSerializer rejection messages: maps, structs, and struct variants now report the same "only supports sequence values" message as every other non-seq shape, via wrong_type_error. Make FlattenedSequenceDeserializer's rejection name the type the same way. Give FlattenedSequenceDeserializer::new the SeqAccess bound its serializer twin has, and document both new functions. Add manual Debug impls for both wrapper types (manual so they don't require S: Debug). Add #[must_use] to always; #[inline] on always, deserialize_some, and both new functions; a "# Errors" section on deserialize_some's docs. Add crate lints: #![forbid(unsafe_code)] and #![warn(missing_docs, missing_debug_implementations)]. Nits: elide the three elidable impl lifetimes, import Impossible once instead of mixing spellings, and drop a trailing comma in a test assert.
Cover the flattening serializer's rejection of scalar and map values,
the flattening deserializer's rejection of non-sequence targets, and
Absent's serialize error when a field lacks the skip_serializing
annotation, asserting the error messages.
Add the from_str("{}") success assertion to the schemars 0.8 schema
test to match its 1.x sibling, and rename flatten_tuple_vec to
test_flatten_tuple_vec so all tests share the test_ prefix.
…package
Use the README's tagline ("Runtime serde helpers for esoteric JSON
semantics") as the crates.io description so the two match, and exclude
.github and rust-toolchain.toml from the published package--they are
repo plumbing, not crate contents.
The notes section said "Pre-publication; API unstable", but 0.0.1-alpha.1 is on crates.io. Say "Early alpha" instead; the API remains unstable.
The README doubles as the crate docs via include_str!, where the relative LICENSE link is a broken intra-doc link (and it is equally dead on crates.io and docs.rs). Point the badge at the file on GitHub. This also lets the new docs CI job pass with -D warnings.
skip_serializing_if avoids 0.8's required-property bug and 1.x's writeOnly decoration alike; the false schema survives intact. Add a test pinning the clean 1.x schema under the always form.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.