macro_rules! into_hset {
(
$( $key: expr ),* $( , )?
) => { ... };
}Expand description
Function and structures to work with collections.
Creates a HashSet from a list of elements.
The into_hset macro allows for convenient creation of a HashSet with initial elements.
Elements passed to the macro are automatically converted into the set’s element type
using .into(), facilitating the use of literals or values of different, but convertible types.
Note: The into_hset macro relies on the .into() method to convert each element into the target type
of the HashSet. This means that the elements must be compatible with the Into< T > trait for the
type T used in the HashSet. Also, this means that sometimes you must specify the type of collection’s items.
§Origin
This collection can be reexported from different crates :
- from
std, ifuse_stdis on (no_stdflag if off ) - from
hashbrown, ifuse_allocflag if on
§Syntax
The macro can be called with a comma-separated list of elements. A trailing comma is optional.
// HashSet of &str
let set1: HashSet< &str > = into_hset!( "a", "b", "c" );
// HashSet of String
let set2: HashSet< String > = into_hset!{ "a".to_string(), "b", "c" };
// With trailing comma
let set3: HashSet< i32 > = into_hset!( 1, 2, 3, );§Parameters
$( $key: expr ),* $( , )?: A comma-separated list of elements to insert into theHashSet. Each element can be of any type that implements theInto< T >trait, whereTis the type stored in theHashSet.
§Returns
Returns a HashSet containing all the specified elements. The capacity of the set is
automatically determined based on the number of elements provided.
§Example
Basic usage with string slices :
let set: HashSet< &str > = into_hset!( "one", "two", "three" );
assert!( set.contains( "one" ) );
assert!( set.contains( "two" ) );
assert!( set.contains( "three" ) );
assert_eq!( set.len(), 3 );§Example
Using with different types that implement Into< T > :
let numbers: HashSet< i32 > = into_hset!( 1, 2, 3 );
assert!( numbers.contains( &1 ) );
assert!( numbers.contains( &2 ) );
assert!( numbers.contains( &3 ) );§Example
Creating a HashSet of String from string literals :
let s: HashSet< String > = into_hset!{ "value" };
assert_eq!( s.get( "value" ), Some( &"value".to_string() ) );