Giter Site home page Giter Site logo

hi_sparse_array's People

Contributors

tower120 avatar

Watchers

 avatar

hi_sparse_array's Issues

`Fold` can work with non-Cloneable iterator

Fold can work with non-Cloneable iterator that produce values or references.

We already store references to Iterator Items in fold's state. We can store Iterator Items in Fold instead. This will make Fold big though.

Compile-time customization of levels count

That could be done through [Level;N], using PassThrough, using some kind of Tuple<impl Level>.
Also some specialization of LevelMasksIter required since get_data... accept last hierarchy level block meta, as input.
All of this requires better meta-programming support from the Rust side. Namely - specialization.

I can't come up with compile-time configurable depth level in current Rust state, without making lib
unreadable. But this is probably doable with macros, or just by re-implementing Array N times, for each
level count.

Rust 1.79 : LevelMasks could return Borrow

This rust-lang/rust#122055 should appear in Rust 1.79
We could try to return Borrow in LevelMasks instead of value.
This should allow to remove Clone constraint from BitBlock.

UPDATE. It turns out that we need more robust GAT support from Rust as well. for<'a> does not work in places where we need it.

SparseHierarchy::get can return Empty DataBlock, if index outside range

SparseHierarchy::get can return Empty DataBlock, if index outside range, instead of Option None.

To do this we probably need to add SparseHierarchy::empty_data_block(&self) -> Self::DataBlock<'_>.
This will make SparseHierarchy interface more complex, and benefits are currently unclear.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.