Skip to content

feat: implement nested structs and zero-allocation fixes - #21

Merged
protheeuz merged 1 commit into
mainfrom
feat/api-enhancements-and-fixes
May 8, 2026
Merged

feat: implement nested structs and zero-allocation fixes#21
protheeuz merged 1 commit into
mainfrom
feat/api-enhancements-and-fixes

Conversation

@suckserberg

Copy link
Copy Markdown
Collaborator

Summary

This PR introduces core API enhancements and critical performance fixes to the serialization pipeline. The most significant additions are the Satset.struct() function for nested schema support and human-readable type aliases to improve developer experience.

Technical Implementation

  • [init.luau]: Implemented Satset.struct() which wraps raw schema tables into reusable Type objects. This allows for deep nesting and better composability.
  • [SchemaCompiler]: Added zero-field support and a safe fallback for 4+ fields in buildFixedDecoder using table.unpack, ensuring robust handling of complex schemas.
  • [Types]: Added long-form aliases (float64, uint8, etc.) as the recommended naming standard for better readability.

Changelog Entry

  • Core: Implementation of nested structs and human-readable type aliases. Enables complex data structures with improved schema clarity.

Type of Change

  • Feature
  • Bug Fix
  • Performance Optimization
  • Documentation Update
  • Maintenance / Chore

Verification and Standards

  • I have adhered to the Development Patterns.
  • I have verified that all CI/CD linting and formatting checks pass.
  • I have confirmed the changes within a Rojo-supported environment.
  • I have updated the technical documentation for any API or architectural changes.

@suckserberg
suckserberg requested a review from protheeuz as a code owner May 8, 2026 12:36
@github-actions github-actions Bot added the enhancement New feature or request label May 8, 2026

@protheeuz protheeuz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. 👍🏻

@protheeuz
protheeuz merged commit c15af50 into main May 8, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants