Maps a /sync response to the slice receiveSyncChanges consumes
-- the five-row rename table on that function's own doc comment, as code,
so a product never hand-writes it. A field is copied when its source key
is present at all, null included; it is not copied when the source key
is absent, which is what leaves it to SyncDelta's own per-field default
rather than forwarding undefined.
A transcription of encryption_slice in
rust/matrix-crypto-core/tests/level_two_interop.rs, which is the same
mapping exercised against a real homeserver and a third-party client, and
the two must stay identical in behaviour -- that Rust function is this
one's source of truth, not the other way around.
Maps a
/syncresponse to the slice receiveSyncChanges consumes -- the five-row rename table on that function's own doc comment, as code, so a product never hand-writes it. A field is copied when its source key is present at all,nullincluded; it is not copied when the source key is absent, which is what leaves it toSyncDelta's own per-field default rather than forwardingundefined.A transcription of
encryption_sliceinrust/matrix-crypto-core/tests/level_two_interop.rs, which is the same mapping exercised against a real homeserver and a third-party client, and the two must stay identical in behaviour -- that Rust function is this one's source of truth, not the other way around.