You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: _invalid_sensor_data.rs
    path of file: ./repos/aws-sdk-rust/sdk/lookoutequipment/src/types
    
    the code of the file until where you have to start completion: // Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>Entity that comprises aggregated information on sensors having insufficient data.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct InvalidSensorData {
    /// <p>Indicates the number of sensors that have at least some invalid values.</p>
    pub affected_sensor_count: i32,
    /// <p>Indicates the total number of invalid values across all the sensors.</p>
    pub total_number_of_invalid_v
    
    pub fn build(self) -> ::std::result::Result<crate::types::InvalidSensorData, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::types::InvalidSensorData {
            affected_sensor_count: self.affected_sensor_count.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "affected_sensor_count",
                    "affected_sensor_count was not specified but it is required when building InvalidSensorData",
                )
            })?,
            total_number_of_invalid_values: self.total_number_of_invalid_values.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "total_number_of_invalid_values",
                    "total_number_of_invalid_values was not specified but it is required when building InvalidSensorData",
                )
            })?,
        })
    }