diff --git a/src/libstd/map.rs b/src/libstd/map.rs index f797ffeff76..a72e87475b2 100644 --- a/src/libstd/map.rs +++ b/src/libstd/map.rs @@ -5,6 +5,7 @@ export hashmap, hashfn, eqfn, set, map, chained, hashmap, str_hash; export bytes_hash, int_hash, uint_hash, set_add; export hash_from_vec, hash_from_strs, hash_from_bytes; export hash_from_ints, hash_from_uints; +export vec_from_set; #[doc = " A function that returns a hash of a value @@ -331,6 +332,18 @@ Convenience function for adding keys to a hashmap with nil type keys "] fn set_add(set: set, key: K) -> bool { ret set.insert(key, ()); } +#[doc = " +Convert a set into a vector. +"] +fn vec_from_set(s: set) -> [T] { + let mut v = []; + s.each_key() {|k| + v += [k]; + true + }; + v +} + #[doc = "Construct a hashmap from a vector"] fn hash_from_vec(hasher: hashfn, eqer: eqfn, items: [(K, V)]) -> hashmap {