Function: majutsu-log--rebuild-relation-indexes

majutsu-log--rebuild-relation-indexes is a natively compiled function defined in majutsu-log.el.

Signature

(majutsu-log--rebuild-relation-indexes &optional ENTRIES)

Documentation

Rebuild visible relation indexes from ENTRIES or cached row entries.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-log.el
(defun majutsu-log--rebuild-relation-indexes (&optional entries)
  "Rebuild visible relation indexes from ENTRIES or cached row entries."
  (let ((entries (or entries majutsu-row-cached-entries))
        (entry-by-id (make-hash-table :test #'equal))
        (children-by-id (make-hash-table :test #'equal)))
    (dolist (entry entries)
      (puthash (majutsu-log--entry-id entry) entry entry-by-id))
    (dolist (entry entries)
      (let ((child-id (majutsu-log--entry-id entry)))
        (dolist (parent-id (majutsu-row-column entry 'parent-ids))
          (when (and (stringp parent-id)
                     (not (string-empty-p parent-id)))
            (puthash parent-id
                     (cons child-id (gethash parent-id children-by-id))
                     children-by-id)))))
    (maphash (lambda (parent-id child-ids)
               (puthash parent-id (nreverse child-ids) children-by-id))
             children-by-id)
    (setq majutsu-log--entry-by-id entry-by-id)
    (setq majutsu-log--children-by-id children-by-id)))