-
Notifications
You must be signed in to change notification settings - Fork 13
feat!: Reference counted terms #2338
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
Conversation
|
This PR contains breaking changes to the public Rust API. cargo-semver-checks summary |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #2338 +/- ##
==========================================
- Coverage 82.14% 82.05% -0.09%
==========================================
Files 244 244
Lines 44270 44474 +204
Branches 40099 40303 +204
==========================================
+ Hits 36365 36494 +129
- Misses 5915 5970 +55
- Partials 1990 2010 +20
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
6f84739 to
5418648
Compare
305351b to
81c5cc3
Compare
This PR makes core
Terms immutable and shareable via reference counting.Terms can now be cheaply copied. To allow for cheap equality checks and hash computations,Terms cache their hash value, making it viable to storeTerms as keys in hash tables. ATermcan be pattern matched by obtaining aTermEnumviaTerm::get.BREAKING CHANGE:
Termis changed from an enum to a structure that hides the reference counting machinery. This changes the way thatTerms are created and consumed.