diff --git a/Cargo.lock b/Cargo.lock index f44b3fb6..2da205e2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1259,7 +1259,6 @@ dependencies = [ "matrix-sdk-sled", "mime", "mime_guess", - "num_enum", "once_cell", "oo7", "pulldown-cmark", @@ -3284,27 +3283,6 @@ dependencies = [ "libc", ] -[[package]] -name = "num_enum" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" -dependencies = [ - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "objc" version = "0.2.7" diff --git a/Cargo.toml b/Cargo.toml index 8d6d3d74..d86fcfae 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -45,7 +45,6 @@ indexmap = "1" log = "0.4" mime = "0.3" mime_guess = "2" -num_enum = "0.5" once_cell = "1" oo7 = { version = "0.1", default-features = false, features = [ "native_crypto", diff --git a/src/session/content/room_details/member_page/members_list_view/membership_subpage_row.rs b/src/session/content/room_details/member_page/members_list_view/membership_subpage_row.rs index 8f6f24b9..a6503c11 100644 --- a/src/session/content/room_details/member_page/members_list_view/membership_subpage_row.rs +++ b/src/session/content/room_details/member_page/members_list_view/membership_subpage_row.rs @@ -79,10 +79,10 @@ mod imp { .connect_released(clone!(@weak obj => move |_, _, _, _| { if let Some(item) = obj.item() { obj.activate_action( - "members.subpage", - Some(&(item.state() as u32).to_variant()), - ) - .unwrap(); + "members.subpage", + Some(&item.state().to_variant()), + ) + .unwrap(); } })); diff --git a/src/session/content/room_details/member_page/mod.rs b/src/session/content/room_details/member_page/mod.rs index 1abc524c..6c971e08 100644 --- a/src/session/content/room_details/member_page/mod.rs +++ b/src/session/content/room_details/member_page/mod.rs @@ -71,9 +71,7 @@ mod imp { }); klass.install_action("members.subpage", Some("u"), move |widget, _, param| { - let state = param - .and_then(|variant| variant.get::()) - .and_then(|u| Membership::try_from(u).ok()); + let state = param.and_then(|variant| variant.get::()); if let Some(state) = state { widget.set_state(state); diff --git a/src/session/room/member.rs b/src/session/room/member.rs index 9136f6ed..49ed1abb 100644 --- a/src/session/room/member.rs +++ b/src/session/room/member.rs @@ -10,7 +10,6 @@ use matrix_sdk::{ OwnedMxcUri, UserId, }, }; -use num_enum::{IntoPrimitive, TryFromPrimitive}; use crate::{ prelude::*, @@ -23,9 +22,8 @@ use crate::{ }, }; -#[derive( - Debug, Default, Hash, Eq, PartialEq, Clone, Copy, glib::Enum, IntoPrimitive, TryFromPrimitive, -)] +#[derive(Debug, Default, Hash, Eq, PartialEq, Clone, Copy, glib::Enum, glib::Variant)] +#[variant_enum(repr)] #[repr(u32)] #[enum_type(name = "Membership")] pub enum Membership { diff --git a/src/session/room/room_type.rs b/src/session/room/room_type.rs index 7c137dde..864697ce 100644 --- a/src/session/room/room_type.rs +++ b/src/session/room/room_type.rs @@ -1,15 +1,12 @@ use std::fmt; use gtk::glib; -use num_enum::{IntoPrimitive, TryFromPrimitive}; use crate::session::sidebar::CategoryType; // TODO: do we also want custom tags support? // See https://spec.matrix.org/v1.2/client-server-api/#room-tagging -#[derive( - Debug, Default, Hash, Eq, PartialEq, Clone, Copy, glib::Enum, IntoPrimitive, TryFromPrimitive, -)] +#[derive(Debug, Default, Hash, Eq, PartialEq, Clone, Copy, glib::Enum)] #[repr(u32)] #[enum_type(name = "RoomType")] pub enum RoomType {