Oops, Now Revert
› published on byThis week in ruma-events' Google Summer of Code project, after trying out the new Any*Event
enums matrix-rust-sdk
, we found a few big flaws. There was no easy way to go from StateEvent<AnyStateEventContent>
to StateEvent<SpecificEventContent>
, the other issue was one could create a StateEvent
with differing content
and prev_content
fields using the AnyStateEventContent
enum. The 0.22 ruma-events will be similar to the existing API; each event type has a corresponding event enum variant.
pub enum AnyStateEvent {
RoomMember(StateEvent<MemberEventContent>),
RoomAliases(StateEvent<AliasesEventContent>),
// ...
}
There were a few minor fixes during the week also. Unknown field deserialization is fixed, allowing deserialization of a JSON blob that has extra fields which are ignored. Custom events are now present in the Any*EventContent
enums, although now they have to be moved up to be included in Any*Event
enums. Benchmarks for deserialization have been added and used to increase performance.