You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I understand why these exist (#60) but I am worried about the situation if Rust were to add another trait with a builtin derive not on this list. Our options would be to add it to this list which would require a 2.0 release of byteorder, or not add it to this list which means the new derive won't work nicely with structs parameterized over byteorder.
I think we should take steps to prevent extending this list being a breaking change. In serde_json we use a trick like this in a similar situation:
mod private {pubtraitSealed{}implSealedforsuper::LittleEndian{}implSealedforsuper::BigEndian{}}/// This trait is sealed and cannot be implemented for types outside of byteorder.pubtraitByteOrder:Clone + Copy + Debug + ... + private::Sealed{
Now we are free to add supertraits and even trait methods (u128 i128 #65) without a major release.
The selling point of byteorder is that you can read and write little- / big-endian numbers, not that you can define your own wild and crazy byte orders, so I think it is reasonable to limit implementations to within the byteorder crate.
I understand why these exist (#60) but I am worried about the situation if Rust were to add another trait with a builtin derive not on this list. Our options would be to add it to this list which would require a 2.0 release of byteorder, or not add it to this list which means the new derive won't work nicely with structs parameterized over byteorder.
I think we should take steps to prevent extending this list being a breaking change. In serde_json we use a trick like this in a similar situation:
Now we are free to add supertraits and even trait methods (u128 i128 #65) without a major release.
The selling point of byteorder is that you can read and write little- / big-endian numbers, not that you can define your own wild and crazy byte orders, so I think it is reasonable to limit implementations to within the byteorder crate.
cc @fitzgen
The text was updated successfully, but these errors were encountered: