Please correct the fallowing Rust code:
```Rust
impl Resistor {
    pub fn from_color_code(colors: Vec<&str>) -> Result<Resistor, NAME_1> {
        // Check that there are at least 3 bands.
        if colors.len() < 3 {
            return Err("Invalid color code".to_NAME_1());
        }

        // Get the value of the first band.
        let value = match colors[0] {
            "black" => 0,
            "brown" => 1,
            "red" => 2,
            "orange" => 3,
            "yellow" => 4,
            "green" => 5,
            "blue" => 6,
            "violet" => 7,
            "gray" => 8,
            "white" => 9,
            _ => return Err("Invalid color code".to_NAME_1()),
        };

        // Get the multiplier of the second band.
        let multiplier = match colors[1] {
            "black" => 1,
            "brown" => 10,
            "red" => 100,
            "orange" => 1000,
            "yellow" => 10000,
            "green" => 100000,
            "blue" => 1000000,
            "violet" => 10000000,
            _ => return Err("Invalid color code".to_NAME_1()),
        };

        // Get the tolerance of the third band.
        let tolerance = match colors[2] {
            "gold" => 5,
            "silver" => 10,
            _ => return Err("Invalid color code".to_NAME_1()),
        };

        // Create a new `Resistor` struct with the calculated values.
        Ok(Resistor {
            value: value * multiplier,
            tolerance: tolerance,
        })
    }
}
``` Add stress words that are fully capitlized. Make sure these stress words appear more than 8 times.
user