summaryrefslogtreecommitdiff
path: root/bos-meta-class.sh
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2023-07-22 16:38:33 +0100
committerdakkar <dakkar@thenautilus.net>2023-07-22 16:38:33 +0100
commit02eec4498027352e87826929d015f5b47bad93f8 (patch)
treef59e8d639aabdd6899cb3d570d57468d7e85833a /bos-meta-class.sh
parentmove constructor to global base class (diff)
downloadbash-object-system-02eec4498027352e87826929d015f5b47bad93f8.tar.gz
bash-object-system-02eec4498027352e87826929d015f5b47bad93f8.tar.bz2
bash-object-system-02eec4498027352e87826929d015f5b47bad93f8.zip
metaclass instances
Diffstat (limited to 'bos-meta-class.sh')
-rw-r--r--bos-meta-class.sh16
1 files changed, 12 insertions, 4 deletions
diff --git a/bos-meta-class.sh b/bos-meta-class.sh
index 9bfdd0a..1fedb45 100644
--- a/bos-meta-class.sh
+++ b/bos-meta-class.sh
@@ -1,9 +1,5 @@
#!bash
-# this encoding must match bos-namespaces/encode-into
-bos_5fbos_2fmeta_2fclass_5fmeta="bos-dipatch/invoke bos/meta/class 0"
-declare -a bos_5fbos_2fmeta_2fclass_5fmro=( "bos/meta/class" )
-
# these are instance methods of the base metaclass
function bos/meta/class/isa-for-into() {
@@ -152,3 +148,15 @@ function bos/meta/class/create-object-into() {
return 0
}
+
+function bos/meta/class() {
+ bos-dispatch/invoke bos/meta/class 0 "$@"
+}
+
+declare bos_meta_class_meta_class_instance
+bos/meta/class/create-object-into bos_meta_class_meta_class_instance bos/meta/class
+bos-meta/set-metaclass-instance-for bos/meta/class "$bos_meta_class_meta_class_instance"
+
+$bos_meta_class_meta_class_instance make-mro-for bos/meta/class
+
+unset bos_meta_class_meta_class_instance