Skip to content

Support tuple newtype patterns across SDKs #4831

@clockwork-labs-bot

Description

@clockwork-labs-bot

This issue tracks reimplementing the work from stale PR #2957, which has been closed because it is too far out of date to merge directly.

Original pull request

What the original PR was trying to do

Description of Changes Related issues: 2379, 2604, 4031. To be able to do this: (previously, the derive macro would panic.) This is an early attempt! I need help in figuring out all details on how to properly implement deserialization. Also, currently this fails with errors like these: (resolved) API and ABI breaking changes Unknown. Expected complexity level and risk 3? Testing - [x] SpacetimeDB compiles - [x] The module builds - [x] Publishing works

Closure context

  • @egormanga what types does this generate in C#, TypeScript, and Rust? I think we'd need those to have support before we merge this. I am going to close this PR and open a ticket with you as the assignee.

If you are motivated to get this feature in then we'd need a philosophy for languages that don't have tuples or tuple structs. In particular C# and C++. Something like regular product types with field names like _0, _1, etc could be acceptable.

Reimplementation notes

  • Reimplement this work on top of current master in a new PR.
  • Keep the original PR linked as historical context and as a source of useful implementation ideas where still relevant.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions