Generate an equivalent serializable representation of an object.

Subclasses must implement this method to define how the attributes of the object are converted into a serializable representation. A common solution is to construct a list containing device buffer attributes in a well-defined order that can be reinterpreted upon deserialization, then place all other lightweight attributes into the metadata dictionary.

Tuple[Dict, List]

The first element of the returned tuple is a dict containing any serializable metadata required to reconstruct the object. The second element is a list containing the device data buffers or memoryviews of the object.

meta private