docs: def submission_status(self, link):
          """
          Given the unique link of a submission, returns its current
          status.
  
          Keyword Arguments
          -----------------
  
          * link: the unique id string of a submission
  
          Returns
          -------
  
          A dictionary of the error, the result code and the status
          code.
  
          Notes
          -----
  
          Status specifies the stage of execution.
  
          * status < 0 means the program awaits compilation
          * status == 0 means the program is done
          * status == 1 means the program is being compiled
          * status == 3 means the program is running
  
          Result specifies how the program finished.
  
          * result == 0 means not running, the program was submitted
                        with run=False
          * result == 11 means compilation error
          * result == 12 means runtime error
          * result == 13 means timelimit exceeded
          * result == 15 means success
          * result == 17 means memory limit exceeded
          * result == 19 means illegal system call
          * result == 20 means Ideone internal error, submit a bug report
  
  
  
          Examples
          --------
  
          >>> ideone_object = Ideone('username', 'password')
          >>> ideone_object.submission_status('LsSbo')
          {'error': 'OK',
           'result': 15,
           'status': 0}
  
          """
          result = self.client.service.getSubmissionStatus(self.user, self.password, link)
          result_dict = Ideone._transform_to_dict(result)
          Ideone._handle_error(result_dict)
          return result_dict