Project scope and design overview
In this section, we will first define what we are going to build and look at the technical design. We will then code a Rust library for image processing. Finally, we will build a command-line application that accepts user inputs through the command line and uses the image resizing library we have built to perform user-specified commands.
What will we build?
In this subsection, we will describe the functional requirements, technical requirements, and project structure for the tool we are building.
Functional requirements
We will build a command-line tool that performs the following two operations:
- Image resize: Resizes one or more images in a source folder to a specified size
- Image stats: Provides some statistics on the image files present in the source folder
Let's name the tool ImageCLI. Figure 4.1 shows the two main features of the tool: