/// `concat_frobs_from_vec_static` is another family of functions parameterized
/// on types that have implementations of the `Frobber` trait. This function
/// requires a `Vec<T>`: i.e. a homogeneous (all values of the same type) vector
/// of values of type `T`. Note that this function _consumes_ the vector as it
/// takes it by value.
`concat_frobs_from_vec_static` is another family of functions parameterized
on types that have implementations of the `Frobber` trait. This function
requires a `Vec`: i.e. a homogeneous (all values of the same type) vector
of values of type `T`. Note that this function _consumes_ the vector as it
takes it by value.
` concat_frobs_from_vec_static ` is another family of functions parameterized on types that have implementations of the ` Frobber ` trait . This function requires a ` Vec ` : i . e . a homogeneous ( all values of the same type ) vector of values of type ` T ` . Note that this function _consumes_ the vector as it takes it by value .
fn concat_frobs_from_vec_static<T: Frobber>(frobbers: Vec<T>) -> String {
    // Probably not the most efficient implementation!
    frobbers
        .iter()
        .map(|frobber| frobber.frob())
        .collect::<Vec<_>>()
        .join(";")
}
fn concat_frobs_from_vec_static < T : Frobber > ( frobbers : Vec < T > ) -> String { // Probably not the most efficient implementation! frobbers . iter ( ) . map ( | frobber | frobber . frob ( ) ) . collect :: < Vec < _ > > ( ) . join ( " " ) }
`concat_frobs_from_vec_static` is another family of functions parameterized
on types that have implementations of the `Frobber` trait.
` concat_frobs_from_vec_static ` is another family of functions parameterized on types that have implementations of the ` Frobber ` trait .
frobbers
Vec<T>