message: Add sphinx documentation of the I/O protocols available in Sidre
diff: @@ -59,3 +59,65 @@ Please see `Sidre API Documentation <../../../../doxygen/html/sidretop.html>`_
  for more detailed description of these ``Group`` class methods and the Sidre
  I/O protocols that can be used with them.
  +Protocols for file I/O
  +----------------------
  +
  +``sidre_hdf5``
  +
  + This is the protocol that supports the most features. It preserves the
  + entire Sidre hierarchy of Groups and Views, with Buffers saved separately
  + from the Views that use them. Each Buffer is saved exactly once, to avoid
  + duplicating data when a Buffer is used by more than one View. The schemas
  + describing the datatypes in each View are saved, and all numerical data is
  + saved with full binary accuracy.
  +
  + ``sidre_hdf5`` is the only protocal that supports the
  + ``loadExternalData()`` method and is the only protocoal that allows
  + data to be added to root files produced by ``IOManager`` after they are
  + first created.
  +
  +``sidre_conduit_json``
  +
  + This protocol saves data in the same layout as ``sidre_hdf5``, but in plain
  + text in the JSON format. The datatypes in all Views are saved, but
  + floating-point values saved in plain text may not load with exact binary
  + equality.
  +
  +``sidre_json``
  +
  + This uses the same hierarchical format as the above protocols and saves
  + in the JSON format, but it does not save datatype information for
  + scalar and string Views. When loading scalars or strings, the library will
  + determine implicitly what type to use, which may not be the same type
  + used in the original objects that were saved. For example, the value of
  + a 32-bit integer will be saved in plain text with no information about
  + its original bit width. When loading, the library may read that value
  + into a 64-bit integer.
  +
  +``conduit_hdf5``
  +
  + This saves group as a conduit node hierarchy. Datatypes are preserved, but
  + no information about Buffers or external arrays is saved. Data arrays for
  + each View are saved; if multiple Views use data from the same Buffer, the
  + values from that Buffer will duplicated.
  +
  +``conduit_json``
  +
  + This is the same as ``conduit_hdf5`` except it uses JSON text. The same
  + caveats about floating-point accuracy apply here as in the other JSON
  + protocols.
  +
  +``conduit_bin``
  +
  + This protocol writes data in conduit's native binary format, and also
  + produces an anccompanying JSON file that contains the schema describing
  + how to parse the binary data. The hierarchal layout of the data is the
  + same as ``conduit_hdf5`` and ``conduit_json``. The binary accuracy of
  + floating-point values is preserved.
  +
  +``json``
  +
  + This protocol saves the smallest amount of information, as it Writes all
  + data in a basic JSON hierarchy with no type information beyond
  + what can be interpreted implicitly. When loading, the library will allocate
  + the largest supported bit width for integer or floating-point values.
  