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

[Feat]: Cows in Operations #54

Open
TylerBloom opened this issue Feb 11, 2023 · 0 comments
Open

[Feat]: Cows in Operations #54

TylerBloom opened this issue Feb 11, 2023 · 0 comments
Labels
feature Some new is requested SquireSDK Affects the SquireSDK library todo Will be resolved but work hasn't started

Comments

@TylerBloom
Copy link
Member

Unmet Need:

Currently, the types used in tournament sync, namely OpSlice, hold vectors of operations. This makes sense since they could, at any point, run into a sync issue and need to return themselves and be (de)serialized. However, we can do slightly better. There is no need for this extra allocation if everything stays local.

To solve this, OpSlices should hold a Cow<'a, [FullOp]> and deserialize into the owned variant. Things that hold an OpSlice, such as a Blockage, are free to restring their slices to be 'static to avoid messy lifetime annotations when they are not needed. Of course, this could be added later if additional performance is needed.

@TylerBloom TylerBloom added todo Will be resolved but work hasn't started feature Some new is requested SquireLib Affects SquireLib labels Feb 11, 2023
@TylerBloom TylerBloom added SquireSDK Affects the SquireSDK library and removed SquireLib Affects SquireLib labels Feb 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Some new is requested SquireSDK Affects the SquireSDK library todo Will be resolved but work hasn't started
Projects
None yet
Development

No branches or pull requests

1 participant