mirror of https://github.com/01-edu/public.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
596 B
36 lines
596 B
4 years ago
|
// Write a functions called identity that calculates the identity of a
|
||
|
// value (receives any data type and returns the same value)
|
||
|
use generics::*;
|
||
|
|
||
|
fn main() {
|
||
|
println!("{}", identity("Hello, world!"));
|
||
|
println!("{}", identity(3));
|
||
|
}
|
||
|
|
||
|
#[derive(PartialEq, Debug)]
|
||
|
struct Point {
|
||
|
x: i32,
|
||
|
y: i32,
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn test_with_int() {
|
||
|
assert_eq!(identity(3), 3);
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn test_with_float() {
|
||
|
assert_eq!(identity(1.0), 1.0);
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn test_with_str() {
|
||
|
assert_eq!(identity("you"), "you");
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn test_with_struct() {
|
||
|
let s = Point { x: 1, y: 2 };
|
||
|
assert_eq!(identity(&s), &s);
|
||
|
}
|