]> git.lizzy.rs Git - rust.git/commitdiff
auto merge of #5005 : alexcrichton/rust/bitv++, r=catamorphism
authorbors <bors@rust-lang.org>
Tue, 19 Feb 2013 02:40:33 +0000 (18:40 -0800)
committerbors <bors@rust-lang.org>
Tue, 19 Feb 2013 02:40:33 +0000 (18:40 -0800)
These commits take the old bitv implementation and modernize it with an explicit self, some minor touchups, and using what I think is some more recent patterns (like `::new` instead of `Type()`).

Additionally, this adds an implementation of `container::Set` on top of a bit vector to have as a set of `uint`s. I initially tried to parameterize the type for the set to be `T: NumCast` but I was hitting build problems in stage0 which I think means that it's not in a snapshot yet, so it's just hardcoded as a set of `uint`s now. In the future perhaps it could be parameterized. I'm not sure if it would really add anything, though, so maybe it's nicer to be hardcoded anyway.

I also added some extra methods to do normal bit vector operations on the set in-place, but these aren't a part of the `Set` trait right now. I haven't benchmarked any of these operations just yet, but I imagine that there's quite a lot of room for optimization here and there.


Trivial merge