loading...

Flexible trait function parameter names in Rust

coolshaurya profile image Shaurya Shubham ・1 min read

When we define a trait we give it a function statement of the form fn blah(foo: Bar). But when implementing this trait the parameter name (here it is foo) can be changed as you wish. So let's have an example.

Playground

/// A very simple struct
struct Simple;
/// A struct that doesn't matter
struct Whatever;

/// A trait that does something _very_ complex
trait SuperDuperComplexThing {
    fn do_super_duper_complex_thing(some_extremely_and_needlessly_long_parameter: Whatever) -> Whatever ;
}

impl SuperDuperComplexThing for Simple {
    fn do_super_duper_complex_thing(simple_param: Whatever) -> Whatever {
        Whatever
    }
}

And this works perfectly. It compiles.

Discussion

markdown guide