29 lines
442 B
Text
29 lines
442 B
Text
|
|
trait PrintType {
|
||
|
|
fn print_type();
|
||
|
|
}
|
||
|
|
|
||
|
|
impl PrintType for char {
|
||
|
|
fn print_type() {
|
||
|
|
println!("char");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
impl PrintType for f64 {
|
||
|
|
fn print_type() {
|
||
|
|
println!("64-bit float");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
fn prints_type_of_args<T,U>(arg1: T, arg2: U)
|
||
|
|
where T: PrintType
|
||
|
|
U: PrintType
|
||
|
|
{
|
||
|
|
arg1.print_type();
|
||
|
|
arg2.print_type();
|
||
|
|
}
|
||
|
|
|
||
|
|
fn main() {
|
||
|
|
prints_type_of_args('a', 2.0);
|
||
|
|
prints_type_of_args('a', 'b');
|
||
|
|
}
|