Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Migrate SlippiUser to be backed by a Rust layer #403

Merged
merged 11 commits into from
Sep 19, 2023

Conversation

ryanmcgrath
Copy link
Collaborator

This PR goes hand-in-hand with project-slippi/slippi-rust-extensions#5: Initial scaffolding for porting User model .

The other PR has more info, but the overall gist here is:

  • SlippiUser has a mostly-kept API to reduce churn, but gets a copy of the Rust EXI device pointer and its API just ferries in and out of the Rust layer. This is safe enough since we don't allow the user to outlive the EXI device.
  • Minor modifications to matchmaking and EXI device files where chat messages were being loaded for a user, just for pulling them across the FFI boundary.
  • slprs_exi_device_create now uses a config struct to make what we're passing over the boundary a little more clear.

I've played on this branch for a few days now with no issues, but I of course invite any testing since there's definitely things I could've missed.

This should port relatively cleanly to the mainline branch, all things considered.

ryanmcgrath and others added 10 commits August 19, 2023 15:19
- Forwards calls in and out of the Rust User Manager held by the EXI
  device.
- Handles converting UserInfo into C++ types so that any existing logic
  relying on assumptions about the type doesn't need to be flagged just
  yet.
- Chat message importing for the current user, as well as the default
  chat list, now live over on the Rust side.
- Slight edits to Matchmaking to handle how chat messages are loaded,
  solely to avoid extra string allocations. Tested and no issues found,
  but someone with more context should test again.
…ts WebView functionality and linking on macOS
@NikhilNarayana NikhilNarayana merged commit c83f775 into project-slippi:slippi Sep 19, 2023
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants