;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. #@63 Evaluate THEN if `generator' library is available. (fn THEN) (defalias 'queue--when-generators '(macro . #[257 "\300\301\302\303#\205 \211\207" [require generator nil noerror] 5 (#$ . 87)])) (put 'queue--when-generators 'edebug-form-spec t) #@64 compiler-macro for inlining `queue-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'queue-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block queue-p (and (memq (type-of cl-x) cl-struct-queue-tags) t)) nil] 9 (#$ . 336)]) (put 'queue-p 'compiler-macro 'queue-p--cmacro) #@13 (fn CL-X) (defalias 'queue-p #[257 "\301!>\205 \302\207" [cl-struct-queue-tags type-of t] 3 (#$ . 639)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put queue-p side-effect-free error-free put queue cl-deftype-satisfies] 5) #@67 compiler-macro for inlining `queue-head'. (fn CL-WHOLE-ARG CL-X) (defalias 'queue-head--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block queue-head (progn (or (queue-p cl-x) (signal 'wrong-type-argument (list 'queue cl-x))) (aref cl-x 1))) nil] 9 (#$ . 892)]) (put 'queue-head 'compiler-macro 'queue-head--cmacro) #@55 Access slot "head" of `queue' struct CL-X. (fn CL-X) (defalias 'queue-head #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-queue-tags type-of signal wrong-type-argument queue 1] 5 (#$ . 1250)]) (byte-code "\300\301\302\303#\300\207" [function-put queue-head side-effect-free t] 4) #@67 compiler-macro for inlining `queue-tail'. (fn CL-WHOLE-ARG CL-X) (defalias 'queue-tail--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block queue-tail (progn (or (queue-p cl-x) (signal 'wrong-type-argument (list 'queue cl-x))) (aref cl-x 2))) nil] 9 (#$ . 1557)]) (put 'queue-tail 'compiler-macro 'queue-tail--cmacro) #@55 Access slot "tail" of `queue' struct CL-X. (fn CL-X) (defalias 'queue-tail #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-queue-tags type-of signal wrong-type-argument queue 2] 5 (#$ . 1916)]) (byte-code "\300\301\302\303#\300\207" [function-put queue-tail side-effect-free t] 4) #@64 compiler-macro for inlining `queue-create'. (fn CL-WHOLE-ARG) (defalias 'queue-create--cmacro #[257 "\300\301\302\301\211\211%\207" [cl--defsubst-expand nil (cl-block queue-create (record 'queue nil nil))] 7 (#$ . 2223)]) (put 'queue-create 'compiler-macro 'queue-create--cmacro) #@42 Constructor for objects of type `queue'. (defalias 'queue-create #[0 "\300\301\302\211#\207" [record queue nil] 4 (#$ . 2510)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \210\313\314\301\315#\207" [function-put queue-create side-effect-free t cl-struct-define queue nil cl-structure-object record ((cl-tag-slot) (head) (tail)) cl-struct-queue-tags defalias make-queue "Create an empty queue data structure."] 11) #@64 Append an ELEMENT to the end of the QUEUE. (fn QUEUE ELEMENT) (defalias 'queue-enqueue #[514 "\301!>\204\302\303\304D\"\210\305H\203@\301!>\204$\302\303\304D\"\210\306H\301!>\2046\302\303\304D\"\210\211\306CI\262\241\207\301!>\204O\302\303\304D\"\210\211\305\301!>\204b\302\303\304D\"\210\211\306CI\262I\207" [cl-struct-queue-tags type-of signal wrong-type-argument queue 1 2] 9 (#$ . 2958)]) (defalias 'queue-append 'queue-enqueue) #@67 Prepend an ELEMENT to the front of the QUEUE. (fn QUEUE ELEMENT) (defalias 'queue-prepend #[514 "\301!>\204\302\303\304D\"\210\305H\203.\301!>\204$\302\303\304D\"\210\211\305\305HBI\207\301!>\204=\302\303\304D\"\210\211\305\301!>\204P\302\303\304D\"\210\211\306CI\262I\207" [cl-struct-queue-tags type-of signal wrong-type-argument queue 1 2] 9 (#$ . 3431)]) #@97 Remove the first element of QUEUE and return it. Returns nil if the queue is empty. (fn QUEUE) (defalias 'queue-dequeue #[257 "\301!>\204\302\303\304D\"\210\211\305HA\204,\301!>\204%\302\303\304D\"\210\211\211\306\307I\266\301!>\204;\302\303\304D\"\210\211\211\305H\211\305AI\210\266\202\242\207" [cl-struct-queue-tags type-of signal wrong-type-argument queue 1 2 nil] 7 (#$ . 3824)]) #@63 Return t if QUEUE is empty, otherwise return nil. (fn QUEUE) (defalias 'queue-empty #[257 "\301!>\204\302\303\304D\"\210\211\305H?\207" [cl-struct-queue-tags type-of signal wrong-type-argument queue 1] 5 (#$ . 4233)]) #@106 Return the first element of QUEUE or nil if it is empty, without removing it from the QUEUE. (fn QUEUE) (defalias 'queue-first #[257 "\301!>\204\302\303\304D\"\210\211\305H@\207" [cl-struct-queue-tags type-of signal wrong-type-argument queue 1] 5 (#$ . 4464)]) #@170 Return the nth element of a queue, without removing it. If the length of the queue is less than N, return nil. The first element in the queue has index 0. (fn QUEUE N) (defalias 'queue-nth #[514 "\211\301!>\204\302\303\304D\"\210\305H8\207" [cl-struct-queue-tags type-of signal wrong-type-argument queue 1] 7 (#$ . 4738)]) #@103 Return the last element of QUEUE, without removing it. Returns nil if the QUEUE is empty. (fn QUEUE) (defalias 'queue-last #[257 "\301!>\204\302\303\304D\"\210\211\305H@\207" [cl-struct-queue-tags type-of signal wrong-type-argument queue 2] 5 (#$ . 5075)]) #@133 Return a list of all elements of QUEUE or nil if it is empty. The oldest element in the queue is the first in the list. (fn QUEUE) (defalias 'queue-all #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-queue-tags type-of signal wrong-type-argument queue 1] 5 (#$ . 5345)]) #@143 Return a copy of QUEUE. The new queue contains the elements of QUEUE in the same order. The elements themselves are *not* copied. (fn QUEUE) (defalias 'queue-copy #[257 "\301\302\303\211#\304!>\204\305\306\302D\"\210\307H\304!>\204&\305\306\302D\"\210\307H\203\266\304!>\204;\305\306\302D\"\210\211\307\304!>\204O\305\306\302D\"\210\307H@CI\266\304!>\204f\305\306\302D\"\210\211\310\304!>\204y\305\306\302D\"\210\307HI\266\211A\211\262\203\266\304!>\204\226\305\306\302D\"\210\211\310\304!>\204\251\305\306\302D\"\210\310H@C\241I\266\202\207" [cl-struct-queue-tags record queue nil type-of signal wrong-type-argument 1 2] 10 (#$ . 5643)]) #@53 Return the number of elements in QUEUE. (fn QUEUE) (defalias 'queue-length #[257 "\301!>\204\302\303\304D\"\210\211\305HG\207" [cl-struct-queue-tags type-of signal wrong-type-argument queue 1] 5 (#$ . 6344)]) #@45 Remove all elements from QUEUE. (fn QUEUE) (defalias 'queue-clear #[257 "\301!>\204\302\303\304D\"\210\211\211\305\306I\266\301!>\204%\302\303\304D\"\210\211\211\307\306I\207" [cl-struct-queue-tags type-of signal wrong-type-argument queue 1 nil 2] 5 (#$ . 6565)]) #@162 Return a queue iterator object. Calling `iter-next' on this object will retrieve the next element from the queue. The queue itself is not modified. (fn QUEUE) (defalias 'queue-iter #[257 "\300C\300C\300C\300\211C\300C\300C\300C\300C\300C\300C\300C\300C\300 \301\302\"\240\210\301\303 \n%\240\210\301\304\f$\240\210\301\305 \f%\240\210\301\306 %\240\210\301\307  %\240\210\301\310 %\240\210\301\311%\240\210\301\312%\262 \240\210\301\313$\207" [nil make-closure #[0 "\301\302\300\242\"\207" [V0 signal iter-end-of-sequence] 3] #[0 "\301\302\242\300\303\242\240\210\240\207" [V0 V1 V2 V3] 4] #[0 "\300\302\242\240\210\303\304\301\242\"\207" [V0 V1 V2 throw cps--yield] 3] #[0 "\301\302\242\302\211\242A\240\210\242\300\303\242\240\210\240\207" [V0 V1 V2 V3] 4] #[0 "\300\301\242\203 \303\242\202 \302\242\240\207" [V0 V1 V2 V3] 2] #[0 "\302\301\242\240\210\300\303\242\240\207" [V0 V1 V2 V3] 2] #[0 "\301\302\242\300\303\242\240\210\240\207" [V0 V1 V2 V3] 4] #[0 "\302\301\242\240\210\300\303\242\240\207" [V0 V1 V2 V3] 2] #[0 "\302\305\300!\f>\204\306\307\310\300D\"\210\300\311H\301\303\242\240\210\240\207" [V0 V1 V2 V3 cl-struct-queue-tags type-of signal wrong-type-argument queue 1] 5] #[514 "\303\267\202/\300\302\242\240\210\301\304\240\207\301\240\210\304C\305\306\300\301\302%\216\3072)\300\242 \210\202!0\310\240\210)\207\311\312\"\207" [V0 V1 V2 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:close 6 :next 15)) nil make-closure #[0 "\303\242?\205\300\302\242\240\210\301\304\240\207" [V0 V1 V2 V3 nil] 2] cps--yield t error "unknown iterator operation %S"] 9 "\n\n(fn OP VALUE)"]] 22 (#$ . 6847)]) (provide 'queue)