diff --git a/ruma-events/src/room/avatar.rs b/ruma-events/src/room/avatar.rs index 5cd3539f..3a891382 100644 --- a/ruma-events/src/room/avatar.rs +++ b/ruma-events/src/room/avatar.rs @@ -13,6 +13,7 @@ pub type AvatarEvent = StateEvent; /// The payload for `AvatarEvent`. #[derive(Clone, Debug, Deserialize, Serialize, StateEventContent)] +#[non_exhaustive] #[ruma_event(type = "m.room.avatar")] pub struct AvatarEventContent { /// Information about the avatar image. @@ -23,3 +24,10 @@ pub struct AvatarEventContent { /// URL of the avatar image. pub url: String, } + +impl AvatarEventContent { + /// Create an `AvatarEventContent` from the given image URL. + pub fn new(url: String) -> Self { + Self { info: None, url } + } +} diff --git a/ruma-events/tests/state_event.rs b/ruma-events/tests/state_event.rs index aaa14ec7..2858155b 100644 --- a/ruma-events/tests/state_event.rs +++ b/ruma-events/tests/state_event.rs @@ -193,6 +193,7 @@ fn deserialize_avatar_without_prev_content() { content: AnyStateEventContent::RoomAvatar(AvatarEventContent { info: Some(info), url, + .. }), event_id, origin_server_ts,