| 120 | } |
| 121 | |
| 122 | [[nodiscard]] bool ForwardedInfoDataIsLoaded( |
| 123 | not_null<Data::Session*> owner, |
| 124 | const MTPMessageFwdHeader &header) { |
| 125 | return header.match([&](const MTPDmessageFwdHeader &data) { |
| 126 | return (!data.vfrom_id() |
| 127 | || PeerDataIsLoaded(owner, peerFromMTP(*data.vfrom_id()))) |
| 128 | && (!data.vsaved_from_peer() |
| 129 | || PeerDataIsLoaded(owner, peerFromMTP(*data.vsaved_from_peer()))) |
| 130 | && (!data.vsaved_from_id() |
| 131 | || PeerDataIsLoaded(owner, peerFromMTP(*data.vsaved_from_id()))); |
| 132 | }); |
| 133 | } |
| 134 | |
| 135 | [[nodiscard]] bool ReplyDataIsLoaded( |
| 136 | not_null<Data::Session*> owner, |
no test coverage detected