@@ -18,7 +18,7 @@ use std::marker::PhantomData;
18
18
19
19
use ruma:: {
20
20
api:: client:: { account:: request_openid_token, delayed_events:: update_delayed_event} ,
21
- events:: { AnyTimelineEvent , MessageLikeEventType , StateEventType , TimelineEventType } ,
21
+ events:: { AnyStateEvent , AnyTimelineEvent , StateEventType , TimelineEventType } ,
22
22
serde:: Raw ,
23
23
} ;
24
24
use serde:: Deserialize ;
@@ -43,14 +43,14 @@ pub(crate) enum MatrixDriverRequestData {
43
43
/// Get OpenId token for a given request ID.
44
44
GetOpenId ,
45
45
46
- /// Read message event(s) .
47
- ReadMessageLikeEvent ( ReadMessageLikeEventRequest ) ,
46
+ /// Read events from the timeline .
47
+ ReadEvents ( ReadEventsRequest ) ,
48
48
49
- /// Read state event(s) .
50
- ReadStateEvent ( ReadStateEventRequest ) ,
49
+ /// Read room state entries .
50
+ ReadState ( ReadStateRequest ) ,
51
51
52
52
/// Send matrix event that corresponds to the given description.
53
- SendMatrixEvent ( SendEventRequest ) ,
53
+ SendEvent ( SendEventRequest ) ,
54
54
55
55
/// Data for sending a UpdateDelayedEvent client server api request.
56
56
UpdateDelayedEvent ( UpdateDelayedEventRequest ) ,
@@ -152,31 +152,37 @@ impl FromMatrixDriverResponse for request_openid_token::v3::Response {
152
152
}
153
153
}
154
154
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
156
156
/// description and return a list of events as a response.
157
157
#[ derive( Clone , Debug ) ]
158
- pub ( crate ) struct ReadMessageLikeEventRequest {
158
+ pub ( crate ) struct ReadEventsRequest {
159
159
/// 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 > ,
161
167
162
168
/// The maximum number of events to return.
163
169
pub ( crate ) limit : u32 ,
164
170
}
165
171
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)
169
175
}
170
176
}
171
177
172
- impl MatrixDriverRequest for ReadMessageLikeEventRequest {
178
+ impl MatrixDriverRequest for ReadEventsRequest {
173
179
type Response = Vec < Raw < AnyTimelineEvent > > ;
174
180
}
175
181
176
182
impl FromMatrixDriverResponse for Vec < Raw < AnyTimelineEvent > > {
177
183
fn from_response ( ev : MatrixDriverResponse ) -> Option < Self > {
178
184
match ev {
179
- MatrixDriverResponse :: MatrixEventRead ( response) => Some ( response) ,
185
+ MatrixDriverResponse :: EventsRead ( response) => Some ( response) ,
180
186
_ => {
181
187
error ! ( "bug in MatrixDriver, received wrong event response" ) ;
182
188
None
@@ -185,26 +191,38 @@ impl FromMatrixDriverResponse for Vec<Raw<AnyTimelineEvent>> {
185
191
}
186
192
}
187
193
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.
190
196
#[ derive( Clone , Debug ) ]
191
- pub ( crate ) struct ReadStateEventRequest {
197
+ pub ( crate ) struct ReadStateRequest {
192
198
/// The event type to read.
193
199
pub ( crate ) event_type : StateEventType ,
194
200
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`.
197
203
pub ( crate ) state_key : StateKeySelector ,
198
204
}
199
205
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)
203
209
}
204
210
}
205
211
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
+ }
208
226
}
209
227
210
228
/// Ask the client to send matrix event that corresponds to the given
@@ -227,7 +245,7 @@ pub(crate) struct SendEventRequest {
227
245
228
246
impl From < SendEventRequest > for MatrixDriverRequestData {
229
247
fn from ( value : SendEventRequest ) -> Self {
230
- MatrixDriverRequestData :: SendMatrixEvent ( value)
248
+ MatrixDriverRequestData :: SendEvent ( value)
231
249
}
232
250
}
233
251
@@ -238,7 +256,7 @@ impl MatrixDriverRequest for SendEventRequest {
238
256
impl FromMatrixDriverResponse for SendEventResponse {
239
257
fn from_response ( ev : MatrixDriverResponse ) -> Option < Self > {
240
258
match ev {
241
- MatrixDriverResponse :: MatrixEventSent ( response) => Some ( response) ,
259
+ MatrixDriverResponse :: EventSent ( response) => Some ( response) ,
242
260
_ => {
243
261
error ! ( "bug in MatrixDriver, received wrong event response" ) ;
244
262
None
@@ -268,7 +286,7 @@ impl MatrixDriverRequest for UpdateDelayedEventRequest {
268
286
impl FromMatrixDriverResponse for update_delayed_event:: unstable:: Response {
269
287
fn from_response ( ev : MatrixDriverResponse ) -> Option < Self > {
270
288
match ev {
271
- MatrixDriverResponse :: MatrixDelayedEventUpdate ( response) => Some ( response) ,
289
+ MatrixDriverResponse :: DelayedEventUpdated ( response) => Some ( response) ,
272
290
_ => {
273
291
error ! ( "bug in MatrixDriver, received wrong event response" ) ;
274
292
None
0 commit comments