2aaa709b0e
Until https://github.com/matrix-org/matrix-rust-sdk/pull/2862, `GroupSessionManager::encrypt_session_for` called `Device::encrypt` (via `Device::maybe_encrypt_room_key`. `Device::encrypt` is a thin wrapper for `ReadOnlyDevice::encrypt`, but it also has an `instrument` annotation. https://github.com/matrix-org/matrix-rust-sdk/pull/2862 short-cuts `Device::encrypt` and calls `ReadOnlyDevice::encrypt` directly: that was functionally fine but of course means that we no longer benefit from the `instrument` annotation. This PR rectifies the situation by pushing the annotation down to `ReadOnlyDevice::encrypt`. It also adds some documentation for that function, since we are using it in more places now. (Longer-term, I think we should probably aim to get rid of `Device::encrypt` altogether, but that's a refactor I don't want to take on today.)