diff options
Diffstat (limited to 'bos-object-id.sh')
-rw-r--r-- | bos-object-id.sh | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/bos-object-id.sh b/bos-object-id.sh new file mode 100644 index 0000000..2026506 --- /dev/null +++ b/bos-object-id.sh @@ -0,0 +1,23 @@ +#!bash +## object identity + +# objects are values, so they're stored in variables! +# +# the shape of that value is… a call to bos_invoke curry-ed on class and +# id, so that `$my_obj the-method 1 2` is equivalent to `bos_invoke +# TheClass $the_obj_id the-method 1 2` +function bos-object-id/pack-self-into() { + local class="$1" + local self_id="$2" + local -n result="$3" + result="bos-dispatch/invoke $class $self_id" +} + +# get class and object id from a $self string +function bos-object/unpack-self-into() { + local self="$1" + local -n class="$2" + local -n id="$2" + local _ + read -r _ class id <<<"$self" +} |