How to create a generic method in Rust

2 Answers

0 votes
// generic method in Rust is done using generics with type parameters

fn swap<T: Copy>(arr: &mut [T], i: usize, j: usize) {
    let temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
}

fn main() {
    // Integer array
    let mut nums = [10, 20, 30, 40];
    println!("Before swap (int): {:?}", nums);
    swap(&mut nums, 1, 3);
    println!("After swap  (int): {:?}", nums);

    println!();

    // String slice array
    let mut words = ["Rust", "Python", "Java", "Go"];
    println!("Before swap (str): {:?}", words);
    swap(&mut words, 0, 2);
    println!("After swap  (str): {:?}", words);

    println!();

    // Float array
    let mut floats = [1.1, 2.2, 3.3, 4.4];
    println!("Before swap (float): {:?}", floats);
    swap(&mut floats, 2, 3);
    println!("After swap  (float): {:?}", floats);
}


/*
run:

Before swap (int): [10, 20, 30, 40]
After swap  (int): [10, 40, 30, 20]

Before swap (str): ["Rust", "Python", "Java", "Go"]
After swap  (str): ["Java", "Python", "Rust", "Go"]

Before swap (float): [1.1, 2.2, 3.3, 4.4]
After swap  (float): [1.1, 2.2, 4.4, 3.3]

*/

 



answered 2 hours ago by avibootz
0 votes
// Generic Pair Function

fn print_pair<K: std::fmt::Display, V: std::fmt::Display>(key: K, value: V) {
    println!("{} = {}", key, value);
}

fn main() {
    print_pair("Age", 27);
    print_pair(101, "Employee ID");
    print_pair("Pi", 3.14159);
}



/*
run:

Age = 27
101 = Employee ID
Pi = 3.14159

*/

 



answered 2 hours ago by avibootz
...