Add Identifiable conformance to PartiallyGenerated struct in GenerableMacro#73
Merged
mattt merged 2 commits intomattt:mainfrom Jan 5, 2026
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds Identifiable conformance to the PartiallyGenerated struct generated by the @Generable macro, enabling seamless use with SwiftUI's ForEach and other APIs requiring Identifiable types. The implementation follows Foundation Models' pattern by adding a GenerationID property.
- Added
Identifiableconformance to the macro-generatedPartiallyGeneratedstruct - Introduced
id: GenerationIDproperty initialized fromGeneratedContent.idor a new instance - Updated test to verify
idproperty is correctly set fromGeneratedContent
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| Sources/AnyLanguageModelMacros/GenerableMacro.swift | Adds Identifiable conformance and id property to the generated PartiallyGenerated struct |
| Tests/AnyLanguageModelTests/GenerableMacroTests.swift | Updates test to create GeneratedContent with a GenerationID and verifies the id is properly assigned |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Owner
|
@ethanhuang13 Thank you for your patience getting your PR reviewed and merged. This is all looking great! I'm excited for how this change might simplify chat-ui-swift. |
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.
Add Identifiable Conformance to PartiallyGenerated
Summary
This PR adds
Identifiableconformance to thePartiallyGeneratedstruct generated by the@Generablemacro, enabling seamless integration with SwiftUI'sForEachand other APIs that requireIdentifiabletypes.Problem
When using
@Generablestructs with SwiftUI'sForEach, compilation fails because the generatedPartiallyGeneratedstruct does not conform toIdentifiable.It's not the case in Foundation Models framework. The commented code are produced by
@Generablein Foundation Models.Solutions & Changes
Following Foundation Models'
@Generablemacros:Identifiableconformance toPartiallyGeneratedstruct.var id: GenerationIDpropertygeneratedContent.idasidTesting:
Create instance from GeneratedContenttest withgenerationID