- Create a module called geometrical_shapes in another file.
- This module will keeps all the logic for creating and operating with the different geometrical shapes and define two traits `Displayable` and `Drawable`.
-`Drawable` contains the methods `draw` and `color`
-`Displayable` contains the methods `display`.
- Define them in correspondence with the way they're called in the main function
- You have to define the structures for Point, Circle, Line, Rectangle and Triangle and make the code in `main.rs` compile and run.
- You are free to implement all the shapes with the internal structure that you find more adequate, but you have to provide for all the shapes an associated function `new` which will be described next:
- Point: a new point should be created from two i32 values
- Line: a new line should be created from references to two points also define an associated function called `random` that receives two argument the first is the maximum x value a point can have and the
second the maximum y value that a point can have
- Triangle: a new triangle should be created from references to three points
- Rectangle: a new rectangle should be created from two reference to points
- Circle: a new circle should be created from a point represented the center and a i32 value representing the radius
- also define an associated function called `random` that receives two arguments the first is the maximum x value the center point can have and the second the maximum y value that the center point can have
Don't forget to add the dependencies in your Cargo.toml.