From 7216cbd5bd095f98b3d4a5048f091f3fa9cfca08 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Fri, 17 Jul 2020 00:03:42 +0200 Subject: [PATCH] Mark CanonicalAliasEventContent as non_exhaustive --- ruma-events/src/lib.rs | 1 + ruma-events/src/room/canonical_alias.rs | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/ruma-events/src/lib.rs b/ruma-events/src/lib.rs index c862d911..c0738bdb 100644 --- a/ruma-events/src/lib.rs +++ b/ruma-events/src/lib.rs @@ -111,6 +111,7 @@ #![recursion_limit = "1024"] #![warn(missing_debug_implementations, missing_docs, rust_2018_idioms)] +#![allow(clippy::new_without_default)] // lint is no good // Since we support Rust 1.36.0, we can't apply this suggestion yet #![allow(clippy::use_self)] // Remove this once https://github.com/rust-lang/rust/issues/54883 becomes stable diff --git a/ruma-events/src/room/canonical_alias.rs b/ruma-events/src/room/canonical_alias.rs index 726a56cd..1e9f514f 100644 --- a/ruma-events/src/room/canonical_alias.rs +++ b/ruma-events/src/room/canonical_alias.rs @@ -11,6 +11,7 @@ pub type CanonicalAliasEvent = StateEvent; /// The payload for `CanonicalAliasEvent`. #[derive(Clone, Debug, Deserialize, Serialize, StateEventContent)] +#[non_exhaustive] #[ruma_event(type = "m.room.canonical_alias")] pub struct CanonicalAliasEventContent { /// The canonical alias. @@ -29,6 +30,13 @@ pub struct CanonicalAliasEventContent { pub alt_aliases: Vec, } +impl CanonicalAliasEventContent { + /// Creates an empty `CanonicalAliasEventContent`. + pub fn new() -> Self { + Self { alias: None, alt_aliases: Vec::new() } + } +} + #[cfg(test)] mod tests { use std::{