Up to Main Index                         Up to Journal for September, 2013

                   JOURNAL FOR MONDAY 16TH SEPTEMBER, 2013
______________________________________________________________________________

SUBJECT: Yet more progress with the loader
   DATE: Mon 16 Sep 22:07:32 BST 2013

In an unexpected turn of events I've made even more progress with the loader.

I've been cleaning up the hacky code and it's gone quite well. I dropped
nearly all of the ugly conversions I had and simplified a lot of the
functions. For example:


  func (_ *Mobile) Unmarshal(r recordjar.Record) recordjar.Unmarshaler {
    m := &Mobile{}
    m.Thing = *(m.Thing.Unmarshal(r).(*thing.Thing))
    return m
  }


Is now just:


  func (m *Mobile) Unmarshal(r recordjar.Record) {
    m.Thing.Unmarshal(r)
  }


The only bookkeeping you need to do is register the types you want to be able
to Marshal/Unmarshal:

  func init() {
    loader.Register("mobile", &Mobile{})
  }

Besides writing type specific init, Init (post Unmarshal) and Unmarshal it's
all turning out quite easy...

--
Diddymus


  Up to Main Index                         Up to Journal for September, 2013