;;; url-future.el --- general futures facility for url.el
-;; Copyright (C) 2011-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2015 Free Software Foundation, Inc.
;; Author: Teodor Zlatanov <tzz@lifelogs.com>
;; Keywords: data
;;; Code:
-(eval-when-compile (require 'cl))
+(eval-when-compile (require 'cl-lib))
-(defstruct url-future callback errorback status value)
+(cl-defstruct url-future callback errorback status value)
-(defmacro url-future-done-p (url-future)
- `(url-future-status ,url-future))
+(define-inline url-future-done-p (url-future)
+ (inline-quote (url-future-status ,url-future)))
-(defmacro url-future-completed-p (url-future)
- `(eq (url-future-status ,url-future) t))
+(define-inline url-future-completed-p (url-future)
+ (inline-quote (eq (url-future-status ,url-future) t)))
-(defmacro url-future-errored-p (url-future)
- `(eq (url-future-status ,url-future) 'error))
+(define-inline url-future-errored-p (url-future)
+ (inline-quote (eq (url-future-status ,url-future) 'error)))
-(defmacro url-future-cancelled-p (url-future)
- `(eq (url-future-status ,url-future) 'cancel))
+(define-inline url-future-cancelled-p (url-future)
+ (inline-quote (eq (url-future-status ,url-future) 'cancel)))
(defun url-future-finish (url-future &optional status)
(if (url-future-done-p url-future)
(setf (url-future-value url-future)
(funcall ff))
(error (url-future-errored url-future catcher)))
- (url-future-value url-future)))
+ ;; Unused return value.
+;;; (url-future-value url-future)
+ ))
(if (url-future-errored-p url-future)
url-future
(url-future-finish url-future))))