Serializes objects using direct field assignment, handling object references and cyclic graphs. Each object serialized requires 1 byte more than FieldSerializer. Each appearance of an object in the graph after the first is stored as an integer ordinal.
Note that serializing references can be convenient, but can sometimes be redundant information. If this is the case and serialized size is a priority, references should not be serialized. Code can sometimes be hand written to reconstruct the references after deserialization.
@see FieldSerializer
@author Nathan Sweet