The GitHub Actions job "npm_and_yarn in /javascript for uuid - Update 
#1340716627" on fory.git/main has failed.
Run started by GitHub user dependabot[bot] (triggered by dependabot[bot]).

Head commit for run:
79aa38a285606b32911aca48d628226925e24092 / Shawn Yang <[email protected]>
feat: add nested container codec for rust (#3630)

## Why?

Rust generated serializers need field-local codec selection so nested
container element/key/value metadata, nullability, reference tracking,
and integer encodings can be represented consistently in compatible and
xlang serialization. The Rust derive API also now distinguishes structs,
pure enums, and union-style enums instead of routing every data shape
through one `ForyObject` derive.

## What does this PR do?

- Adds Rust field codecs for serializer-backed fields, options,
lists/sets, maps, nested container entries, integer encodings, `Any`,
and trait object fields.
- Reworks `fory-derive` field binding, read, write, and metadata
generation to dispatch through codecs when field annotations or nested
metadata require it, while preserving declared generic metadata for
unannotated container fields.
- Splits the Rust derive macros into `ForyStruct`, `ForyEnum`, and
`ForyUnion`, with validation for applying each macro to the matching
Rust data shape.
- Updates Rust IDL/codegen output to emit nested `list(...)` and
`map(...)` field attributes and the new derive macros.
- Updates Rust docs, README examples, benchmark fixtures, and tests from
`ForyObject` to the new derive names.
- Adds Rust coverage for nested codec annotations, compatible-mode
integer encoding mismatches, collection generic metadata,
trait-object/`Any` containers, and serialized benchmark payload sizes.
- Adds a dedicated C++ IDL CI job setup and keeps the C++ xlang job
naming consistent.

## Related issues

#1017
#3625

## AI Contribution Checklist

- [ ] Substantial AI assistance was used in this PR: `yes` / `no`
- [ ] If `yes`, I included a completed [AI Contribution
Checklist](https://github.com/apache/fory/blob/main/AI_POLICY.md#9-contributor-checklist-for-ai-assisted-prs)
in this PR description and the required `AI Usage Disclosure`.
- [ ] If `yes`, my PR description includes the required `ai_review`
summary and screenshot evidence of the final clean AI review results
from both fresh reviewers on the current PR diff or current HEAD after
the latest code changes.

## Does this PR introduce any user-facing change?

- [x] Does this PR introduce any public API change?
- [x] Does this PR introduce any binary protocol compatibility change?

Rust users should derive `ForyStruct`, `ForyEnum`, or `ForyUnion`
instead of the previous `ForyObject` macro. Rust generated serializers
can now emit nested list/map field metadata and field-level codec
behavior for annotated containers.

## Benchmark

No benchmark results are included in the PR diff. The Rust benchmark
test fixture now asserts serialized size baselines for the covered
payloads.

Report URL: https://github.com/apache/fory/actions/runs/25066784309

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to