RosettaCodeData/Task/Conditional-structures/Rust/conditional-structures-3.rust

29 lines
465 B
Text
Raw Permalink Normal View History

2017-09-23 10:01:46 +02:00
trait PrintType {
2018-06-22 20:57:24 +00:00
fn print_type(&self);
2017-09-23 10:01:46 +02:00
}
impl PrintType for char {
2018-06-22 20:57:24 +00:00
fn print_type(&self) {
2017-09-23 10:01:46 +02:00
println!("char");
}
}
impl PrintType for f64 {
2018-06-22 20:57:24 +00:00
fn print_type(&self) {
2017-09-23 10:01:46 +02:00
println!("64-bit float");
}
}
2018-06-22 20:57:24 +00:00
fn prints_type_of_args<T, U>(arg1: &T, arg2: &U)
where T: PrintType,
2017-09-23 10:01:46 +02:00
U: PrintType
{
arg1.print_type();
arg2.print_type();
}
fn main() {
2018-06-22 20:57:24 +00:00
prints_type_of_args(&'a', &2.0);
prints_type_of_args(&'a', &'b');
2017-09-23 10:01:46 +02:00
}