docs: def get_input_user(entity):
      """Similar to :meth:`get_input_peer`, but for :tl:`InputUser`'s alone."""
      try:
          if entity.SUBCLASS_OF_ID == 0xe669bf46:  # crc32(b'InputUser'):
              return entity
      except AttributeError:
          _raise_cast_fail(entity, 'InputUser')
  
      if isinstance(entity, types.User):
          if entity.is_self:
              return types.InputUserSelf()
          else:
              return types.InputUser(entity.id, entity.access_hash or 0)
  
      if isinstance(entity, types.InputPeerSelf):
          return types.InputUserSelf()
  
      if isinstance(entity, (types.UserEmpty, types.InputPeerEmpty)):
          return types.InputUserEmpty()
  
      if isinstance(entity, types.UserFull):
          return get_input_user(entity.user)
  
      if isinstance(entity, types.InputPeerUser):
          return types.InputUser(entity.user_id, entity.access_hash)
  
      _raise_cast_fail(entity, 'InputUser')