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

Switch back to beef for our CoW solution. #199

Open
tobz opened this issue Apr 15, 2021 · 1 comment
Open

Switch back to beef for our CoW solution. #199

tobz opened this issue Apr 15, 2021 · 1 comment
Labels
C-core Component: core functionality such as traits, etc. E-intermediate Effort: intermediate. S-waiting-on-upstream Status: issue/PR requires an upstream change to either a dependency or Rust itself T-refactor Type: refactor.

Comments

@tobz
Copy link
Member

tobz commented Apr 15, 2021

When we originally switched to metrics::Cow, beef didn't yet support const slicing and so we couldn't universally use it for both strings and slices. In turn, we ended up forking beef, essentially, tooling it for our specific needs.

Now that const string/slicing operations are available on stable, we should be able to theoretically switch to using beef which is a more all-encompassing solution than our hacked-and-slashed down implementation. It's an extra dependency, but it's a light dependency.

@tobz tobz added C-core Component: core functionality such as traits, etc. E-intermediate Effort: intermediate. T-refactor Type: refactor. labels Apr 15, 2021
@tobz
Copy link
Member Author

tobz commented Apr 16, 2021

Playing around with this quickly: this depends on being able to specify traits on generics in const settings beyond Sized. There's no super specific issue but this is the high-level meta-issue: rust-lang/rust#57563

@tobz tobz added the S-waiting-on-upstream Status: issue/PR requires an upstream change to either a dependency or Rust itself label Jan 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-core Component: core functionality such as traits, etc. E-intermediate Effort: intermediate. S-waiting-on-upstream Status: issue/PR requires an upstream change to either a dependency or Rust itself T-refactor Type: refactor.
Projects
None yet
Development

No branches or pull requests

1 participant