1. 05 Feb, 2019 2 commits
    • Eric Myhre's avatar
      fluent support for KeysIterator, Length, etc. · 0d61265c
      Eric Myhre authored
      Allows uncommenting some fixme's in some tests.
      
      Also, changed free.keyIterator to be unexported.  Exporting that was
      a typo; there's simply no reason for that to be exported.
      Signed-off-by: default avatarEric Myhre <hash@exultant.us>
      0d61265c
    • Eric Myhre's avatar
      Node.Keys method now returns iterators. · 5c3bd1af
      Eric Myhre authored
      An "immediate" rather than generative function is also available;
      the docs contain caveats.
      
      At the moment, these distinctions are a bit forced, but we want to be
      ready for when we start getting truly huge maps where the generative
      usage actually *matters* for either memory reasons, latency reasons,
      or both.
      
      Separated Length rather than trying to pull double-duty the Keys
      method; the previous combination was just utterly silly.
      
      The implementations in the bind package are stubs; that package is
      going to take a lot of work, and so the focus is going to be entirely
      on keeping the 'free' package viable; and we'll revisit bind and such
      when there's more dev time budget.
      Signed-off-by: default avatarEric Myhre <hash@exultant.us>
      5c3bd1af
  2. 15 Jan, 2019 1 commit
  3. 08 Jan, 2019 2 commits
  4. 08 Dec, 2018 1 commit
    • Eric Myhre's avatar
      Begin schema validation method. · b66f9261
      Eric Myhre authored
      This will be for the active path -- if we also follow through on the
      idea of having a just-in-time checked Node wrapper, a lot of these
      checks might end up duplicated.  We'll DRY that up when we get there.
      
      Doing accumulation of errors.  Might get loud.  We can come back and
      and early-halt parameters or other accumulation strategies later.
      
      Added IsNull predicate to core Node interface.
      
      Going to want enumerated error categories here for sure, but punting
      on that until we get more examples of what all the errors *are*; then
      I'll come back and tear all this 'fmt.Errorf' nonsense back out.
      Signed-off-by: default avatarEric Myhre <hash@exultant.us>
      b66f9261
  5. 06 Dec, 2018 1 commit
    • Eric Myhre's avatar
      Add Kind and Keys methods to Node. · 5c32434e
      Eric Myhre authored
      And ReprKind moves from the typed package to the ipld main package.
      It's hard to get too much done without the standardization of ReprKind.
      
      Between the Kind() and Keys() methods, it should now be possible to
      perform traversals of unknown nodes.
      
      This diff just worries about implementing all the Kind() methods.
      Keys() has some additional questions to handle (namely, map ordering?).
      Signed-off-by: default avatarEric Myhre <hash@exultant.us>
      5c32434e
  6. 26 Nov, 2018 1 commit
  7. 10 Nov, 2018 2 commits
    • Eric Myhre's avatar
      Add missing link fields to ipldfree.Node. · 6e449c0a
      Eric Myhre authored
      Not sure why these weren't there already.
      
      (Probably because of the ongoing discussion about "is link a kind at
      the data model level?" -- to which I still opine "ideally, no".  But
      that's something we're probably going to concede "yes" on *for now*,
      and try to straighten out later once we get something ready for the
      higher level type systems.)
      Signed-off-by: default avatarEric Myhre <hash@exultant.us>
      6e449c0a
    • Eric Myhre's avatar
      Drag a few things towards consistent order. · 1ac85e2d
      Eric Myhre authored
      Sort float and bytes (less ubiquitous things) to the bottom.
      
      Drop mention of uint from the ipldfree implementation.  So far all spec
      discussions have tended towards mentioning "integers" as a type, and
      definitely not "unsigned integers" or "positive-only integers" as a
      distinct kind in the core Data Model.
      Signed-off-by: default avatarEric Myhre <hash@exultant.us>
      1ac85e2d
  8. 21 Oct, 2018 1 commit
    • Eric Myhre's avatar
      Node for all. Last phase deref. · 34a8b3c7
      Eric Myhre authored
      Finally got the bind and free impls on the same page.
      
      Surprisingly, the bind node can work without being a ptr itself.
      I'm not sure if that'll last, but let's try to roll with it.
      If we *can* keep that property, it might reduce GC impact in a pretty
      significant way.
      
      Added a 'fluent' package.  It's just a twinkle in my eye so far, but it
      might represent the nicest way through all the discussed issues.
      Nodes shouldn't have to be panicful; and users shouldn't have to do all
      error handling manually either.  A package full of fluent interfaces
      that know what's going on seems to be the only way to get both.
      But we'll see how this shakes out.  Maybe typeful traversers will
      make the whole thing end up more coreward than being relegated to a
      helper package.  I have no idea.
      Signed-off-by: default avatarEric Myhre <hash@exultant.us>
      34a8b3c7
  9. 19 Oct, 2018 1 commit