async fn read_update(
services: &Services,
user_id: &UserId,
fields: impl Iterator<Item = ProfileFieldName> + Send,
) -> Result<UserUpdate>Expand description
Reads back what the collected fields hold now.
The log records that a field changed and never what it changed to, so the
current value is the one to send. A field the log names but the profile no
longer holds is the removal a client needs to clear its own copy, which the
proposal spells as a null value.