The GitHub Actions job "Fory CI" on fory.git/main has succeeded. Run started by GitHub user chaokunyang (triggered by chaokunyang).
Head commit for run: ba6aecfd7b82a6fce7ff502f2786e8854ffa8b59 / urlyy <[email protected]> fix(Rust): prevent obtaining generic type metadata on custom types(struct/enum) (#3057) ## Why? Issue #3049 reveals a problem. For example, when serializing the field `my_vec: Vec<Wrapper<Inner>>`, the current Fory-Rust writes ``` (id: Vec::type_id, generics: [ ( id: Wrapper<Inner>::type_id, generics: [] ) ]) ``` That is, the concrete generic type parameters on structs/enums are not written into the `FieldType` metadata. This results in inconsistent metadata between the sender and the receiver, and causes `assign_field_ids()` to assign `remote_field.field_id = -1`, leading to the issue. ## What does this PR do? When obtaining the field type on the sender side, for field_type `Vec<Wrapper<Inner>>`, the `FieldType` objects for `Vec` and `Wrapper<Inner>` have already been created, so there is no need to further create a `FieldType` object for `Inner`. Therefore, further recursion over generic types on structs/enums is truncated in the runtime. Meanwhile, because different languages provide different levels of support for generic types on classes, serializing structs/enums with generics is `not supported in xlang mode`. A `runtime check` has been added for this. ## Related issues Fixes #3049 Report URL: https://github.com/apache/fory/actions/runs/20297548607 With regards, GitHub Actions via GitBox --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
