Used for messages/data transmitted through network/IPC. It lazily encodes/decodes the data
which minimized the unncessary computation/copy of the data (at most one encode/decode per
instance).
The objects of structs that implement this trait can be serialized/deserialized and transmitted
over the network without losing the type information (as a tag, and checked by as_any) at the
destination.