facet class sys::Serializable

  sys::Serializable : sys::Facet

@FacetMeta { inherited=true }


Serializable is a facet used to annotate types which can be serialized. Objects are serialized via OutStream.writeObj and deserialized via InStream.readObj.

See the Serialization Doc for details.


const Bool collection := false


Collections are serialized with a collection of child objects using the following rules where Item is the item type:

  • Provide an add(Item) method to add child items during readObj
  • Provide an each(|Item| f) method to iterate child items during writeObj

const Bool simple := false


Simples are serialized atomically via a customized string representation using the following rules:

  • Override Obj.toStr to return a suitable string representation of the object.
  • Must declare a static method called fromStr which takes one Str parameter and returns an instance of the declaring type. The fromStr method may contain additional parameters if they declare defaults.