1. 29 Mar, 2020 1 commit
  2. 27 Feb, 2020 1 commit
    • Eric Myhre's avatar
      Yank TypedNode interface into schema package. · a2ea4706
      Eric Myhre authored
      Previously it was in the 'impl/typed' package, next to the
      runtime-wrapper implementation of the interface.  This was strange.
      
      Not only should those two things be separated just on principle,
      this was also causing more import cycle problems down the road:
      for example, the traversal package needs to consider the *interface*
      for a schema-typed node in order to gracefully handle some features...
      and if this also brings in a *concrete* dependency on the
      runtime-wrapper implementation of typed nodes, not only is that
      incorrect bloat, it becomes a show stopper because (currently, at
      least) that implementation also in turn transitively imports the
      ipldfree package for some of its scalars.  Ouchouch.
      
      So.  Now the interface lives over in the 'schema' package, with all
      the other interfaces for that feature set.  Where it probably always
      should have been.
      
      ('typed.Maybe' also became known as 'schema.Maybe', which... does not
      roll off the tongue as nicely.  But this is a minor concern and we
      might reconsider the naming and appearance of that thing later anyway.)
      a2ea4706
  3. 17 Oct, 2019 1 commit
    • Eric Myhre's avatar
      Beginning natively-typed access and builders. · 41d79374
      Eric Myhre authored
      This introduces several new methods to the type generator.
      The new comment at the top of 'gen.go' explains the direction.
      
      There are several (sizable impact) TODOs in the methods for structs;
      this is because some other research I've been doing on performance
      is going to result in a re-think of how we regard pointers,
      and a *lot* of the struct code is going to get a shakeup shortly.
      Should be coming up in about two commits or so.
      (The 'Maybe' structs getting their first mention here will have
      something to do with it!)
      
      Some more file split-ups to keep node interface generation separate
      from native-typed API generation will be coming up next commit.
      
      You can also see here some TODOs regarding the future possibility of
      "validate" methods.  This is something I want to pursue, but the
      implementation work will be nontrivial -- those TODOs will probably
      stay there a good while.
      Signed-off-by: default avatarEric Myhre <hash@exultant.us>
      41d79374