@@ -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 ) ,
@@ -152,31 +152,37 @@ impl FromMatrixDriverResponse for request_openid_token::v3::Response {
152152 }
153153}
154154
155- /// Ask the client to read matrix event(s) that corresponds to the given
155+ /// Ask the client to read matrix events that correspond to the given
156156/// description and return a list of events as a response.
157157#[ derive( Clone , Debug ) ]
158- pub ( crate ) struct ReadMessageLikeEventRequest {
158+ pub ( crate ) struct ReadEventsRequest {
159159 /// The event type to read.
160- pub ( crate ) event_type : MessageLikeEventType ,
160+ pub ( crate ) event_type : TimelineEventType ,
161+
162+ /// The `state_key` to read. If None, this will read events regardless of
163+ /// whether they are state events. If `Some(Any)`, this will read any state
164+ /// events of the given type. If set to a specific state key, this will only
165+ /// read state events matching that state key.
166+ pub ( crate ) state_key : Option < StateKeySelector > ,
161167
162168 /// The maximum number of events to return.
163169 pub ( crate ) limit : u32 ,
164170}
165171
166- impl From < ReadMessageLikeEventRequest > for MatrixDriverRequestData {
167- fn from ( value : ReadMessageLikeEventRequest ) -> Self {
168- MatrixDriverRequestData :: ReadMessageLikeEvent ( value)
172+ impl From < ReadEventsRequest > for MatrixDriverRequestData {
173+ fn from ( value : ReadEventsRequest ) -> Self {
174+ MatrixDriverRequestData :: ReadEvents ( value)
169175 }
170176}
171177
172- impl MatrixDriverRequest for ReadMessageLikeEventRequest {
178+ impl MatrixDriverRequest for ReadEventsRequest {
173179 type Response = Vec < Raw < AnyTimelineEvent > > ;
174180}
175181
176182impl FromMatrixDriverResponse for Vec < Raw < AnyTimelineEvent > > {
177183 fn from_response ( ev : MatrixDriverResponse ) -> Option < Self > {
178184 match ev {
179- MatrixDriverResponse :: MatrixEventRead ( response) => Some ( response) ,
185+ MatrixDriverResponse :: EventsRead ( response) => Some ( response) ,
180186 _ => {
181187 error ! ( "bug in MatrixDriver, received wrong event response" ) ;
182188 None
@@ -185,26 +191,38 @@ impl FromMatrixDriverResponse for Vec<Raw<AnyTimelineEvent>> {
185191 }
186192}
187193
188- /// Ask the client to read matrix event(s) that corresponds to the given
189- /// description and return a list of events as a response.
194+ /// Ask the client to read matrix room state entries corresponding to the given
195+ /// description and return a list of state events as a response.
190196#[ derive( Clone , Debug ) ]
191- pub ( crate ) struct ReadStateEventRequest {
197+ pub ( crate ) struct ReadStateRequest {
192198 /// The event type to read.
193199 pub ( crate ) event_type : StateEventType ,
194200
195- /// The `state_key` to read, or `Any` to receive any/all events of the given
196- /// type, regardless of their `state_key`.
201+ /// The `state_key` to read, or `Any` to receive any/all room state entries
202+ /// of the given type, regardless of their `state_key`.
197203 pub ( crate ) state_key : StateKeySelector ,
198204}
199205
200- impl From < ReadStateEventRequest > for MatrixDriverRequestData {
201- fn from ( value : ReadStateEventRequest ) -> Self {
202- MatrixDriverRequestData :: ReadStateEvent ( value)
206+ impl From < ReadStateRequest > for MatrixDriverRequestData {
207+ fn from ( value : ReadStateRequest ) -> Self {
208+ MatrixDriverRequestData :: ReadState ( value)
203209 }
204210}
205211
206- impl MatrixDriverRequest for ReadStateEventRequest {
207- type Response = Vec < Raw < AnyTimelineEvent > > ;
212+ impl MatrixDriverRequest for ReadStateRequest {
213+ type Response = Vec < Raw < AnyStateEvent > > ;
214+ }
215+
216+ impl FromMatrixDriverResponse for Vec < Raw < AnyStateEvent > > {
217+ fn from_response ( ev : MatrixDriverResponse ) -> Option < Self > {
218+ match ev {
219+ MatrixDriverResponse :: StateRead ( response) => Some ( response) ,
220+ _ => {
221+ error ! ( "bug in MatrixDriver, received wrong event response" ) ;
222+ None
223+ }
224+ }
225+ }
208226}
209227
210228/// Ask the client to send matrix event that corresponds to the given
@@ -227,7 +245,7 @@ pub(crate) struct SendEventRequest {
227245
228246impl From < SendEventRequest > for MatrixDriverRequestData {
229247 fn from ( value : SendEventRequest ) -> Self {
230- MatrixDriverRequestData :: SendMatrixEvent ( value)
248+ MatrixDriverRequestData :: SendEvent ( value)
231249 }
232250}
233251
@@ -238,7 +256,7 @@ impl MatrixDriverRequest for SendEventRequest {
238256impl FromMatrixDriverResponse for SendEventResponse {
239257 fn from_response ( ev : MatrixDriverResponse ) -> Option < Self > {
240258 match ev {
241- MatrixDriverResponse :: MatrixEventSent ( response) => Some ( response) ,
259+ MatrixDriverResponse :: EventSent ( response) => Some ( response) ,
242260 _ => {
243261 error ! ( "bug in MatrixDriver, received wrong event response" ) ;
244262 None
@@ -268,7 +286,7 @@ impl MatrixDriverRequest for UpdateDelayedEventRequest {
268286impl FromMatrixDriverResponse for update_delayed_event:: unstable:: Response {
269287 fn from_response ( ev : MatrixDriverResponse ) -> Option < Self > {
270288 match ev {
271- MatrixDriverResponse :: MatrixDelayedEventUpdate ( response) => Some ( response) ,
289+ MatrixDriverResponse :: DelayedEventUpdated ( response) => Some ( response) ,
272290 _ => {
273291 error ! ( "bug in MatrixDriver, received wrong event response" ) ;
274292 None
0 commit comments