Merge remote-tracking branch 'upstream/main' into conduwuit-changes
This commit is contained in:
commit
ef92d8b2f5
@ -4,6 +4,8 @@ Bug fixes:
|
|||||||
|
|
||||||
- Don't require the `failures` field in the
|
- Don't require the `failures` field in the
|
||||||
`ruma_client_api::keys::upload_signatures::Response` type.
|
`ruma_client_api::keys::upload_signatures::Response` type.
|
||||||
|
- `sync::sync_events::v3::Timeline::is_empty` now returns `false` when the
|
||||||
|
`limited` or `prev_batch` fields are set.
|
||||||
|
|
||||||
Breaking changes:
|
Breaking changes:
|
||||||
|
|
||||||
|
@ -349,7 +349,6 @@ pub struct Timeline {
|
|||||||
pub prev_batch: Option<String>,
|
pub prev_batch: Option<String>,
|
||||||
|
|
||||||
/// A list of events.
|
/// A list of events.
|
||||||
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
|
||||||
pub events: Vec<Raw<AnySyncTimelineEvent>>,
|
pub events: Vec<Raw<AnySyncTimelineEvent>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -360,8 +359,11 @@ impl Timeline {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Returns true if there are no timeline updates.
|
/// Returns true if there are no timeline updates.
|
||||||
|
///
|
||||||
|
/// A `Timeline` is considered non-empty if it has at least one event, a
|
||||||
|
/// `prev_batch` value, or `limited` is `true`.
|
||||||
pub fn is_empty(&self) -> bool {
|
pub fn is_empty(&self) -> bool {
|
||||||
self.events.is_empty()
|
!self.limited && self.prev_batch.is_none() && self.events.is_empty()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -603,16 +605,17 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn timeline_serde() {
|
fn timeline_serde() {
|
||||||
let timeline = assign!(Timeline::new(), { limited: true });
|
let timeline = assign!(Timeline::new(), { limited: true });
|
||||||
let timeline_serialized = json!({ "limited": true });
|
let timeline_serialized = json!({ "events": [], "limited": true });
|
||||||
assert_eq!(to_json_value(timeline).unwrap(), timeline_serialized);
|
assert_eq!(to_json_value(timeline).unwrap(), timeline_serialized);
|
||||||
|
|
||||||
let timeline_deserialized = from_json_value::<Timeline>(timeline_serialized).unwrap();
|
let timeline_deserialized = from_json_value::<Timeline>(timeline_serialized).unwrap();
|
||||||
assert!(timeline_deserialized.limited);
|
assert!(timeline_deserialized.limited);
|
||||||
|
|
||||||
let timeline_default = Timeline::default();
|
let timeline_default = Timeline::default();
|
||||||
assert_eq!(to_json_value(timeline_default).unwrap(), json!({}));
|
assert_eq!(to_json_value(timeline_default).unwrap(), json!({ "events": [] }));
|
||||||
|
|
||||||
let timeline_default_deserialized = from_json_value::<Timeline>(json!({})).unwrap();
|
let timeline_default_deserialized =
|
||||||
|
from_json_value::<Timeline>(json!({ "events": [] })).unwrap();
|
||||||
assert!(!timeline_default_deserialized.limited);
|
assert!(!timeline_default_deserialized.limited);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user