@@ -18,7 +18,7 @@ use std::marker::PhantomData;
1818
1919use ruma:: {
2020 api:: client:: { account:: request_openid_token, delayed_events:: update_delayed_event} ,
21- events:: { AnyTimelineEvent , MessageLikeEventType , StateEventType , TimelineEventType } ,
21+ events:: { AnyStateEvent , AnyTimelineEvent , StateEventType , TimelineEventType } ,
2222 serde:: Raw ,
2323} ;
2424use serde:: Deserialize ;
@@ -43,14 +43,14 @@ pub(crate) enum MatrixDriverRequestData {
4343 /// Get OpenId token for a given request ID.
4444 GetOpenId ,
4545
46- /// Read message event(s) .
47- ReadMessageLikeEvent ( ReadMessageLikeEventRequest ) ,
46+ /// Read events from the timeline .
47+ ReadEvents ( ReadEventsRequest ) ,
4848
49- /// Read state event(s) .
50- ReadStateEvent ( ReadStateEventRequest ) ,
49+ /// Read room state entries .
50+ ReadState ( ReadStateRequest ) ,
5151
5252 /// Send matrix event that corresponds to the given description.
53- SendMatrixEvent ( SendEventRequest ) ,
53+ SendEvent ( SendEventRequest ) ,
5454
5555 /// Data for sending a UpdateDelayedEvent client server api request.
5656 UpdateDelayedEvent ( UpdateDelayedEventRequest ) ,
@@ -158,31 +158,37 @@ impl FromMatrixDriverResponse for request_openid_token::v3::Response {
158158 }
159159}
160160
161- /// Ask the client to read matrix event(s) that corresponds to the given
161+ /// Ask the client to read matrix events that correspond to the given
162162/// description and return a list of events as a response.
163163#[ derive( Clone , Debug ) ]
164- pub ( crate ) struct ReadMessageLikeEventRequest {
164+ pub ( crate ) struct ReadEventsRequest {
165165 /// The event type to read.
166- pub ( crate ) event_type : MessageLikeEventType ,
166+ pub ( crate ) event_type : TimelineEventType ,
167+
168+ /// The `state_key` to read. If None, this will read events regardless of
169+ /// whether they are state events. If `Some(Any)`, this will read any state
170+ /// events of the given type. If set to a specific state key, this will only
171+ /// read state events matching that state key.
172+ pub ( crate ) state_key : Option < StateKeySelector > ,
167173
168174 /// The maximum number of events to return.
169175 pub ( crate ) limit : u32 ,
170176}
171177
172- impl From < ReadMessageLikeEventRequest > for MatrixDriverRequestData {
173- fn from ( value : ReadMessageLikeEventRequest ) -> Self {
174- MatrixDriverRequestData :: ReadMessageLikeEvent ( value)
178+ impl From < ReadEventsRequest > for MatrixDriverRequestData {
179+ fn from ( value : ReadEventsRequest ) -> Self {
180+ MatrixDriverRequestData :: ReadEvents ( value)
175181 }
176182}
177183
178- impl MatrixDriverRequest for ReadMessageLikeEventRequest {
184+ impl MatrixDriverRequest for ReadEventsRequest {
179185 type Response = Vec < Raw < AnyTimelineEvent > > ;
180186}
181187
182188impl FromMatrixDriverResponse for Vec < Raw < AnyTimelineEvent > > {
183189 fn from_response ( ev : MatrixDriverResponse ) -> Option < Self > {
184190 match ev {
185- MatrixDriverResponse :: MatrixEventRead ( response) => Some ( response) ,
191+ MatrixDriverResponse :: EventsRead ( response) => Some ( response) ,
186192 _ => {
187193 error ! ( "bug in MatrixDriver, received wrong event response" ) ;
188194 None
@@ -191,26 +197,38 @@ impl FromMatrixDriverResponse for Vec<Raw<AnyTimelineEvent>> {
191197 }
192198}
193199
194- /// Ask the client to read matrix event(s) that corresponds to the given
195- /// description and return a list of events as a response.
200+ /// Ask the client to read matrix room state entries corresponding to the given
201+ /// description and return a list of state events as a response.
196202#[ derive( Clone , Debug ) ]
197- pub ( crate ) struct ReadStateEventRequest {
203+ pub ( crate ) struct ReadStateRequest {
198204 /// The event type to read.
199205 pub ( crate ) event_type : StateEventType ,
200206
201- /// The `state_key` to read, or `Any` to receive any/all events of the given
202- /// type, regardless of their `state_key`.
207+ /// The `state_key` to read, or `Any` to receive any/all room state entries
208+ /// of the given type, regardless of their `state_key`.
203209 pub ( crate ) state_key : StateKeySelector ,
204210}
205211
206- impl From < ReadStateEventRequest > for MatrixDriverRequestData {
207- fn from ( value : ReadStateEventRequest ) -> Self {
208- MatrixDriverRequestData :: ReadStateEvent ( value)
212+ impl From < ReadStateRequest > for MatrixDriverRequestData {
213+ fn from ( value : ReadStateRequest ) -> Self {
214+ MatrixDriverRequestData :: ReadState ( value)
209215 }
210216}
211217
212- impl MatrixDriverRequest for ReadStateEventRequest {
213- type Response = Vec < Raw < AnyTimelineEvent > > ;
218+ impl MatrixDriverRequest for ReadStateRequest {
219+ type Response = Vec < Raw < AnyStateEvent > > ;
220+ }
221+
222+ impl FromMatrixDriverResponse for Vec < Raw < AnyStateEvent > > {
223+ fn from_response ( ev : MatrixDriverResponse ) -> Option < Self > {
224+ match ev {
225+ MatrixDriverResponse :: StateRead ( response) => Some ( response) ,
226+ _ => {
227+ error ! ( "bug in MatrixDriver, received wrong event response" ) ;
228+ None
229+ }
230+ }
231+ }
214232}
215233
216234/// Ask the client to send matrix event that corresponds to the given
@@ -233,7 +251,7 @@ pub(crate) struct SendEventRequest {
233251
234252impl From < SendEventRequest > for MatrixDriverRequestData {
235253 fn from ( value : SendEventRequest ) -> Self {
236- MatrixDriverRequestData :: SendMatrixEvent ( value)
254+ MatrixDriverRequestData :: SendEvent ( value)
237255 }
238256}
239257
@@ -244,7 +262,7 @@ impl MatrixDriverRequest for SendEventRequest {
244262impl FromMatrixDriverResponse for SendEventResponse {
245263 fn from_response ( ev : MatrixDriverResponse ) -> Option < Self > {
246264 match ev {
247- MatrixDriverResponse :: MatrixEventSent ( response) => Some ( response) ,
265+ MatrixDriverResponse :: EventSent ( response) => Some ( response) ,
248266 _ => {
249267 error ! ( "bug in MatrixDriver, received wrong event response" ) ;
250268 None
@@ -274,7 +292,7 @@ impl MatrixDriverRequest for UpdateDelayedEventRequest {
274292impl FromMatrixDriverResponse for update_delayed_event:: unstable:: Response {
275293 fn from_response ( ev : MatrixDriverResponse ) -> Option < Self > {
276294 match ev {
277- MatrixDriverResponse :: MatrixDelayedEventUpdate ( response) => Some ( response) ,
295+ MatrixDriverResponse :: DelayedEventUpdated ( response) => Some ( response) ,
278296 _ => {
279297 error ! ( "bug in MatrixDriver, received wrong event response" ) ;
280298 None
0 commit comments