Conversation
this uses the rust 1.45 features to remove recursion inside the macro. great for rs-ipfs#284 which adds even more complicated async-stream(s).
|
I'll force push once #288 is merged with the few TODO comments which are missing. I am still thinking if I should render the AddErrors as StringError as a new json line since that's the best we can do. It might even trigger an error on the js-ipfs-http-client side which would be better than hanging. |
b5bf673 to
aab2e82
Compare
|
I think this is now ready for review. Thanks to npm for providing me focus time to try out the perf enchancements (which could be dropped off if they look bad enough) :) |
|
Wantlist cancellation failure: https://github.com/rs-ipfs/rust-ipfs/pull/284/checks?check_run_id=953826545#step:5:633 |
not sure what is the index file hash change.
a6ce6f9 to
7446810
Compare
Co-authored-by: ljedrz <ljedrz@users.noreply.github.com>
bee60ae to
aaabc37
Compare
|
bors r+ |
284: unixfs: feat tree building r=koivunej a=koivunej Includes a `BufferingTreeBuilder` which kind of follows the js-ipfs implementation: a *complete* tree is built from path segments and later it's converted into a dag-pb by an "iterator" which walks the tree in post order, converting (rendering) the most nested elements first. Communication back to the "parent" is done using a `HashMap<u64, Vec<Option<(String, Cid, usize)>>>` which relies on initial ordering provided by `BufferingTreeBuilder` by using BTreeMap's on each level. Co-authored-by: Joonas Koivunen <joonas@equilibrium.co> Co-authored-by: Joonas Koivunen <joonas.koivunen@gmail.com>
|
readme_doctest with a https://github.com/rs-ipfs/rust-ipfs/pull/284/checks?check_run_id=965960327#step:5:574 in wantlist_cancellation. |
|
Same with bors... Interesting. bors r- |
|
Canceled. |
|
bors r+ |
|
Build succeeded: |
Includes a
BufferingTreeBuilderwhich kind of follows the js-ipfs implementation: a complete tree is built from path segments and later it's converted into a dag-pb by an "iterator" which walks the tree in post order, converting (rendering) the most nested elements first. Communication back to the "parent" is done using aHashMap<u64, Vec<Option<(String, Cid, usize)>>>which relies on initial ordering provided byBufferingTreeBuilderby using BTreeMap's on each level.