TimelyDataflow / differential-dataflow

An implementation of differential dataflow using timely dataflow on Rust.
MIT License
2.55k stars 183 forks source link

Use bespoke traits in place of std::ops traits #319

Closed frankmcsherry closed 3 years ago

frankmcsherry commented 3 years ago

Previously, difference.rs built its group-theoretic traits out of std::ops traits like AddAssign, Neg, and Mul. These traits are not implemented for many common types that you might want, like tuples, arrays, and vectors. To use these types, custom structs were implemented, but with "miserable ergonomics".

This PR replaces the reliance on std::ops traits by moving the methods in to local traits with similar names, and expanded implementations.