From 9ed83165d00cf5ddddd77f86a996b875a2a7b994 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Wed, 23 Mar 2022 13:45:53 +0100 Subject: [PATCH] common: Use StringEnum for the KeyUsage enum --- crates/ruma-common/src/encryption.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/crates/ruma-common/src/encryption.rs b/crates/ruma-common/src/encryption.rs index 027f2ebf..beb3db96 100644 --- a/crates/ruma-common/src/encryption.rs +++ b/crates/ruma-common/src/encryption.rs @@ -6,7 +6,10 @@ use std::collections::BTreeMap; use serde::{Deserialize, Serialize}; -use crate::{serde::Base64, DeviceId, DeviceKeyId, EventEncryptionAlgorithm, UserId}; +use crate::{ + serde::{Base64, StringEnum}, + DeviceId, DeviceKeyId, EventEncryptionAlgorithm, PrivOwnedStr, UserId, +}; /// Identity keys for a device. #[derive(Clone, Debug, Deserialize, Serialize)] @@ -152,9 +155,9 @@ impl CrossSigningKey { } /// The usage of a cross signing key. -#[derive(Clone, Debug, Deserialize, Serialize)] +#[derive(Clone, Debug, StringEnum)] #[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)] -#[serde(rename_all = "snake_case")] +#[ruma_enum(rename_all = "snake_case")] pub enum KeyUsage { /// Master key. Master, @@ -164,4 +167,7 @@ pub enum KeyUsage { /// User-signing key. UserSigning, + + #[doc(hidden)] + _Custom(PrivOwnedStr), }