package meta func ReadStructGeneric(r Reader, createStruct StructFactory, field string) (Struct, error) { if err := r.BeginContainer(field); err != nil { return nil, err } var classId uint32 if err := r.ReadUint32(&classId, ""); err != nil { return nil, err } s, err := createStruct(classId) if err != nil { return nil, err } if err := s.Read(r); err != nil { return nil, err } if err := r.EndContainer(); err != nil { return nil, err } return s, nil } func WriteStructGeneric(w Writer, s Struct, field string) error { if err := w.BeginCollection(2, field); err != nil { return err } if err := w.WriteUint32(s.ClassId(), ""); err != nil { return err } if err := s.Write(w); err != nil { return err } return w.EndCollection() }