]> git.lizzy.rs Git - rust.git/commit
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)
commit6351515d98d4d79500eac021bd573fbbd586bb24
tree0e29fe150321ec1d8e95897fbdcda09f0b57524c
parent9ba2e65fd6892d2200b517d11e95870e4b2ece12
parentcf2ddf0437e347be4fb830772421ef1534cdab0e
auto merge of #5005 : alexcrichton/rust/bitv++, r=catamorphism

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.