• Lucas Molas's avatar
    unixfs: add a directory interface · 7d531c00
    Lucas Molas authored
    Add a UnixFS `Directory` that hides implementation details and helps to
    distinguish *what* is a UnixFS directory.
    
    Replace the `unixfs.io.Directory` structure that contained the HAMT and basic
    directory implementations (through inner pointers) with an interface containing
    the same methods. Implement those methods in two clearly distinct structures for
    each implementation (`BasicDirectory` and `HAMTDirectory`) avoiding pointer
    logic and clearly differentiating which implementation does what.
    
    The potential basic to HAMT transition was being hidden behind the `AddChild`
    call at the UnixFS layer (changing one implementation pointer  with the other
    one), it is now being explicitly done at the MFS layer.
    
    Rename the `dirbuilder.go` file to `directory.go` and change the `Directory` MFS
    attribute `dirbuilder` to `unixfsDir` to be consistent.
    
    License: MIT
    Signed-off-by: default avatarLucas Molas <schomatis@gmail.com>
    7d531c00
dir.go 9.3 KB