code: async def get_edit(self, message=None, *, timeout=None):
          
          start_time = time.time()
          target_id = self._get_message_id(message)
  
          target_date = self._edit_dates.get(target_id, 0)
          earliest_edit = min(
              (x for x in self._incoming
               if x.edit_date
               and x.id > target_id
               and x.edit_date.timestamp() > target_date
               ),
              key=lambda x: x.edit_date.timestamp(),
              default=None
          )
  
          if earliest_edit and earliest_edit.edit_date.timestamp() > target_date:
              self._edit_dates[target_id] = earliest_edit.edit_date.timestamp()
              return earliest_edit
  
          # Otherwise the next incoming response will be the one to use
          future = asyncio.Future(loop=self._client.loop)
          self._pending_edits[target_id] = future
          return await self._get_result(future, start_time, timeout)
docs: Awaits for an edit after the last message to arrive.
          The arguments are the same as those for `get_response`.