Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Add support for interface types #516

Merged
merged 12 commits into from
Jan 22, 2024

Conversation

tmadlener
Copy link
Collaborator

@tmadlener tmadlener commented Nov 22, 2023

BEGINRELEASENOTES

  • Add a new category of types that can be generated by podio: interfaces. These can be used to provide a type that can be initialized from several other datatypes and offers some common functionality. These interface types can be used in OneToOneRelations and in OneToManyRelations.
    • interfaces need to provide a list of types which they interface. Other types cannot be used with them.

ENDRELEASENOTES

Draft resurrection of #215 with the major difference that this no longer uses a std::variant of the Obj* types, but rather relies on a type-erased wrapping of the default handle types. Additionally, this also no longer supports mutable interface types, as I don't think we really have a use case for them.

@tmadlener tmadlener marked this pull request as draft November 22, 2023 20:47
@tmadlener tmadlener force-pushed the interface-types-variant branch 2 times, most recently from 21ac810 to a72e767 Compare November 23, 2023 14:00
@tmadlener tmadlener force-pushed the interface-types-variant branch from a72e767 to 443a654 Compare December 1, 2023 19:36
@tmadlener tmadlener changed the title [WIP] Interface types variant Add support for interface types Dec 1, 2023
@tmadlener tmadlener force-pushed the interface-types-variant branch 2 times, most recently from 3f99856 to 29cac56 Compare December 5, 2023 14:13
@tmadlener
Copy link
Collaborator Author

Julia code generation cannot really deal with interface types at the moment. I will probably just filter them out at generation time to make the tests pass here.

@tmadlener
Copy link
Collaborator Author

Waiting on #527 to have a cleaner basis for adding interface types only for c++.

@tmadlener tmadlener force-pushed the interface-types-variant branch 2 times, most recently from 7a86ce4 to 0c81511 Compare December 18, 2023 12:27
@tmadlener tmadlener marked this pull request as ready for review December 18, 2023 12:27
@tmadlener tmadlener force-pushed the interface-types-variant branch from c4aab0d to 1bf3632 Compare December 18, 2023 15:20
@tmadlener tmadlener mentioned this pull request Dec 18, 2023
2 tasks
@tmadlener tmadlener force-pushed the interface-types-variant branch from 1bf3632 to 4cdb295 Compare December 18, 2023 16:03
@tmadlener tmadlener force-pushed the interface-types-variant branch 2 times, most recently from b40fec3 to 0274858 Compare January 18, 2024 10:34
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant