struct_io.[ch] is more generic and only generate functions.

They should not be included directly and must be use only by other
module to generate function for structure input output.

See protocol.[ch] for an example of utilisation.