;;; phpinspect-class-struct.el --- PHP parsing and completion package -*- lexical-binding: t; -*- ;; Copyright (C) 2021-2023 Free Software Foundation, Inc ;; Author: Hugo Thunnissen ;; Keywords: php, languages, tools, convenience ;; Version: 0 ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;;; Code: (cl-defstruct (phpinspect--class (:constructor phpinspect--make-class-generated)) (project nil :type phpinspect-project :documentaton "The project that this class belongs to") (index nil :type phpinspect--indexed-class :documentation "The index that this class is derived from") (methods (make-hash-table :test 'eq :size 20 :rehash-size 20) :type hash-table :documentation "All methods, including those from extended classes.") (static-methods (make-hash-table :test 'eq :size 20 :rehash-size 20) :type hash-table :documentation "All static methods this class provides, including those from extended classes.") (name nil :type phpinspect--type) (variables nil :type list :documentation "Variables that belong to this class.") (extended-classes nil :type list :documentation "All extended/implemented classes.") (subscriptions (make-hash-table :test #'eq :size 10 :rehash-size 1.5) :type hash-table :documentation "A list of subscription functions that should be called whenever anything about this class is updated") (declaration nil) (initial-index nil :type bool :documentation "A boolean indicating whether or not this class has been indexed yet.")) (provide 'phpinspect-class-struct)