Skip to content

Commit 3e28579

Browse files
committed
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 1360852 commit 3e28579

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

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

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
// limitations under the License.
1414

1515
use ruma::{
16-
events::{AnyTimelineEvent, MessageLikeEventType, StateEventType},
16+
events::{AnyStateEvent, AnyTimelineEvent, MessageLikeEventType, StateEventType},
1717
serde::Raw,
1818
};
1919
use serde::Deserialize;
@@ -192,6 +192,16 @@ impl<'a> TryFrom<&'a Raw<AnyTimelineEvent>> for FilterInput<'a> {
192192
}
193193
}
194194

195+
/// Create a filter input based on [`AnyStateEvent`].
196+
/// This will create a [`FilterInput::State`].
197+
impl<'a> TryFrom<&'a Raw<AnyStateEvent>> for FilterInput<'a> {
198+
type Error = serde_json::Error;
199+
200+
fn try_from(raw_event: &'a Raw<AnyStateEvent>) -> Result<Self, Self::Error> {
201+
raw_event.deserialize_as()
202+
}
203+
}
204+
195205
impl<'a> From<&'a SendEventRequest> for FilterInput<'a> {
196206
fn from(request: &'a SendEventRequest) -> Self {
197207
match &request.state_key {

0 commit comments

Comments
 (0)