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: _probe.rs
    path of file: ./repos/aws-sdk-rust/sdk/networkmonitor/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>Describes information about a monitor probe.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct Probe {
    /// <p>The ID of the probe.</p>
    pub probe_id: ::std::option::Option<::std::string::String>,
    /// <p>The ARN of the probe.</p>
    pub probe_arn: ::std::option::Option<::std::string::String>,
    /// <p>The ARN of the probe source subnet.</p>
    pub source_arn: ::std::string::String,
    /// <p>The destination for the probe. This should be either an <code>IPV4</code> or <code>IPV6</code>.</p>
    pub destination: ::std::string::String,
    /// <p>The destination port for the probe. This is required only if the <code>protocol</code> is <code>TCP</code> and must be a num
    
    pub fn build(self) -> ::std::result::Result<crate::types::Probe, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::types::Probe {
            probe_id: self.probe_id,
            probe_arn: self.probe_arn,
            source_arn: self.source_arn.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "source_arn",
                    "source_arn was not specified but it is required when building Probe",
                )
            })?,
            destination: self.destination.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "destination",
                    "destination was not specified but it is required when building Probe",
                )
            })?,
            destination_port: self.destination_port,
            protocol: self.protocol.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "protocol",
                    "protocol was not specified but it is required when building Probe",
                )
            })?,
            packet_size: self.packet_size,
            address_family: self.address_family,
            vpc_id: self.vpc_id,
            state: self.state,
            created_at: self.created_at,
            modified_at: self.modified_at,
            tags: self.tags,
        })
    }