diff --git a/ruma-client-api/CHANGELOG.md b/ruma-client-api/CHANGELOG.md index 69557d05..c1b13444 100644 --- a/ruma-client-api/CHANGELOG.md +++ b/ruma-client-api/CHANGELOG.md @@ -57,6 +57,7 @@ Breaking changes: * Move `r0::directory::{Filter, PublicRoomsChunk, RoomNetwork}` to the `ruma-common` crate * Replace `r0::room::create_room::InitialStateEvent` with `ruma_events::InitialStateEvent` +* `error::ErrorKind` no longer implements `Copy`, `FromStr` Improvements: diff --git a/ruma-client-api/src/error.rs b/ruma-client-api/src/error.rs index 5fea2791..67d6f723 100644 --- a/ruma-client-api/src/error.rs +++ b/ruma-client-api/src/error.rs @@ -3,12 +3,13 @@ use std::fmt::{self, Display, Formatter}; use ruma_api::{error::ResponseDeserializationError, EndpointError}; +use ruma_identifiers::RoomVersionId; use serde::{Deserialize, Serialize}; use serde_json::{from_slice as from_json_slice, to_vec as to_json_vec}; -use strum::{AsRefStr, Display, EnumString}; +use strum::{AsRefStr, Display}; /// An enum for the error kind. Items may contain additional information. -#[derive(Debug, Clone, Copy, Serialize, Deserialize, AsRefStr, Display, EnumString)] +#[derive(Debug, Clone, Serialize, Deserialize, AsRefStr, Display)] #[serde(tag = "errcode")] #[cfg_attr(test, derive(PartialEq))] pub enum ErrorKind { @@ -127,7 +128,10 @@ pub enum ErrorKind { /// M_INCOMPATIBLE_ROOM_VERSION #[serde(rename = "M_INCOMPATIBLE_ROOM_VERSION")] #[strum(to_string = "M_INCOMPATIBLE_ROOM_VERSION")] - IncompatibleRoomVersion, + IncompatibleRoomVersion { + /// The room's version. + room_version: RoomVersionId, + }, /// M_BAD_STATE #[serde(rename = "M_BAD_STATE")]