0.1.4 breaks Serde support
In 0.1.3, I was using `oxilangtag = { version = "0.1.3", features = ["serde"] }`. This no longer works in 0.1.4 as it's been changed to `dep:serde` in https://github.com/oxigraph/oxilangtag/commit/ac3368223b30f4b40b620a8fa57da894d44e3802.
I noticed that the feature for serde support is called `serialize`, so I changed the feature to that - `oxilangtag = { version = "0.1.4", features = ["serialize"] }`. However, the actual code is gated behind the feature `serde` which can no longer be enabled in 0.1.4. For example:
```rust
#[cfg(feature = "serde")]
impl<T: Serialize> Serialize for LanguageTag<T> {
fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
self.tag.serialize(serializer)
}
}
#[cfg(feature = "serde")]
impl<'de, T: Deref<Target = str> + Deserialize<'de>> Deserialize<'de> for LanguageTag<T> {
fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<LanguageTag<T>, D::Error> {
use serde::de::Error;
Self::parse(T::deserialize(deserializer)?).map_err(D::Error::custom)
}
}
```
Either the feature to enable serde support should be called `serde` or instances of `#[cfg(feature = "serde")]` should be changed to `#[cfg(feature = "serialize")]`.
关闭于 2024-03-23 1 条评论