Skip to content

Commit 5c7566c

Browse files
robintownpoljar
authored andcommitted
refactor(widget): Allow state events to be converted to filter inputs
So that when I need to do this (in later commits) I don't have to cast.
1 parent aba0adf commit 5c7566c

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

crates/matrix-sdk/src/widget/filter.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414

1515
use ruma::{
1616
events::{
17-
AnyTimelineEvent, AnyToDeviceEvent, MessageLikeEventType, StateEventType, ToDeviceEventType,
17+
AnyStateEvent, AnyTimelineEvent, AnyToDeviceEvent, MessageLikeEventType, StateEventType,
18+
ToDeviceEventType,
1819
},
1920
serde::Raw,
2021
};
@@ -224,6 +225,16 @@ impl<'a> TryFrom<&'a Raw<AnyTimelineEvent>> for FilterInput<'a> {
224225
}
225226
}
226227

228+
/// Create a filter input based on [`AnyStateEvent`].
229+
/// This will create a [`FilterInput::State`].
230+
impl<'a> TryFrom<&'a Raw<AnyStateEvent>> for FilterInput<'a> {
231+
type Error = serde_json::Error;
232+
233+
fn try_from(raw_event: &'a Raw<AnyStateEvent>) -> Result<Self, Self::Error> {
234+
raw_event.deserialize_as()
235+
}
236+
}
237+
227238
#[derive(Debug, Deserialize)]
228239
pub struct FilterInputToDevice<'a> {
229240
#[serde(rename = "type")]

0 commit comments

Comments
 (0)