NAME
Zuzu::Module::Marshal - runtime support for std/marshal
DESCRIPTION
Runtime support for std/marshal. The current implementation supports Zuzu Marshal CBOR v1 envelopes with scalars, Pair, Array, Dict, PairList, Set, Bag, Time, Path, user functions, user-defined classes, user-defined traits, user object values, and bound method values. User object __on_dump__ and __on_load__ lifecycle hooks are called during dump and load. safe_to_dump performs the same dump traversal and returns false for values that cannot currently be marshalled. User-defined functions, classes, and traits are serialized through code table records containing source, scalar captures, and supported dependencies. Weak storage records are emitted and loaded only in stored value positions such as object slots and collection entries. Malformed, nested, or misplaced weak records are rejected. A weak edge that is not already strongly reachable is encoded as [1, null] so that marshalling does not strengthen it during dump or load.
COPYRIGHT AND LICENCE
Zuzu::Module::Marshal is copyright Toby Inkster.
It is free software; you may redistribute it and/or modify it under the terms of either the Artistic License 1.0 or the GNU General Public License version 2.