-
Notifications
You must be signed in to change notification settings - Fork 480
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
skiplist: extract equivalent
mod to a crate
#1158
base: master
Are you sure you want to change the base?
Conversation
|
Hi @taiki-e, any suggestions on this PR? |
This looks reasonable from my eye. Edit: Nevermind, I didn't see the re-exports, though it is almost a compatible change, it may still suprise the user that type unintentionally implemented a different trait.
#[cfg(feature="equivalent_flipped")]
impl <T> Equivalent for T where T: equivalent_flipped::Equivalent { /* ** */ }
#[cfg(feature="equivalent_flipped")]
impl <T> Comparable for T where T: equivalent_flipped::Comparable { /* ** */ } |
After carefully considering, I believe it will be a breaking change anyway. Either re-exports or blanket impls break the following code, rustc consider the following trait impls conflicted. struct SomeType;
impl equivalent_flipped::Equivalent for SomeType { /* ** */ }
impl crossbeam_skiplist::Equivalent for SomeType { /* ** */ } |
I do not think this is a breaking change, because the current 0.1.3 still using Borrow, the Equivalent and Comparable version has not been released, so this will not influence the crates which are using 0.1.3 |
Okay, so is there any concern blocking the release of v0.1.4? @taiki-e |
The re-export compatibility issue mentioned in #1132 is why this is a blocker that should be resolved before release. |
Hi, this PR extracts
equivalent
mod incrossbeam-skiplist
toequivalent-flipped
crate so that users can implementComparable
andEquivalent
without depending oncrossbeam-skiplist
.