Functions, methods, and associated functions
Functions, and by extension methods and associated functions, are a way to group functionality together in a way that allows for code reuse without having to re-write the code in each place that it is used.
The distinction between a function, method and associated function is as follows:
- A function is a grouping of code that is independent of any object
 - A method is a function that is associated with an object and it uses 
selfas the first parameter - An associated function is a method but without the 
selfparameter 
Function Declaration
A function declaration consists of a few components
- The 
fnkeyword - A unique name for the function
 - Comma separated optional parameters, and their types, inside 
() - An optional return type
 
Here is a template that applies to the aforementioned functions.
fn my_function(my_parameter: u64 /* ... */ ) -> u64 {
    // function code
    42
}