Hacker News new | ask | show | jobs
by delano 6179 days ago
Thanks for the detailed answer. The reason I ask is b/c there are some non-trivial problems which are similar regardless of the language or implementation. For example, what would the $self->data return value look like for a non-scalar? Does it recursively process a hash?

When you say the linker keeps note of the object IDs, does this mean the digests are stored outside of the objects themselves?

1 comments

Yes, the class is not responsible for managing any aspect of its storage. It can provide hints, however, and that's what the "ID" and "Immutable" roles do.

It is worth pointing out that no automatic hashing is occurring. You write a function that is invoked on an instance of the class that determines the unique ID. You decide the content-addressibility of your object by choosing the address based on the content.

(If you just want a unique ID per object, KiokuDB assigns a UUID by default as the ID.)