Skip to content

Conversation

Sergio0694
Copy link
Member

Overview

This PR adds an API to enumerate items in an array builder without allocating a whole array.
It also uses this API when creating a BlockSyntax, to avoid wasting an array just to enumerate items.
The returned enumerable is readonly, ensuring mutations must go through the actual builder.

PR Checklist

  • Created a feature/dev branch in your fork (vs. submitting directly from a commit on main)
  • Based off latest main branch of toolkit
  • PR doesn't include merge commits (always rebase on top of our main, if needed)
  • Tested code with current supported SDKs
  • Tests for the changes have been added (for bug fixes / features) (if applicable)
  • Header has been added to all new source files (run build/UpdateHeaders.bat)
  • Contains NO breaking changes
  • Every new API (including internal ones) has full XML docs
  • Code follows all style conventions

@Sergio0694 Sergio0694 added optimization ☄ Performance or memory usage improvements mvvm-toolkit 🧰 Issues/PRs for the MVVM Toolkit analyzer 👓 A new analyzer being implemented or updated labels Jun 20, 2023
@Sergio0694
Copy link
Member Author

Hey @Youssef1313, want to take a quick lock when you have a minute? This one is very smol 😄

@Sergio0694
Copy link
Member Author

@Youssef1313 I assume you have no other concerns with this one, so good to go? 😄

Copy link
Contributor

@Youssef1313 Youssef1313 left a comment

Choose a reason for hiding this comment

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

Yup. Looks good!

@Sergio0694 Sergio0694 merged commit 34f82fe into main Jun 21, 2023
@Sergio0694 Sergio0694 deleted the dev/builder-enumerable branch June 21, 2023 11:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
analyzer 👓 A new analyzer being implemented or updated mvvm-toolkit 🧰 Issues/PRs for the MVVM Toolkit optimization ☄ Performance or memory usage improvements
Projects
No open projects
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants