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: _platform_device.rs
    path of file: ./repos/aws-sdk-rust/sdk/ecs/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>The devices that are available on the container instance. The only supported device type is a GPU.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct PlatformDevice {
    /// <p>The ID for the GPUs on the container instance. The available GPU IDs can also be obtained on the container instance in the <code>/var/lib/ecs/gpu/nvidia_gpu_info.json</code> file.</p>
    pub id: ::std::string::String,
    /// <p>The type of device that's available on the con
    
    pub fn build(self) -> ::std::result::Result<crate::types::PlatformDevice, ::aws_smithy_types::error::operation::BuildError> {
        ::std::result::Result::Ok(crate::types::PlatformDevice {
            id: self.id.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "id",
                    "id was not specified but it is required when building PlatformDevice",
                )
            })?,
            r#type: self.r#type.ok_or_else(|| {
                ::aws_smithy_types::error::operation::BuildError::missing_field(
                    "r#type",
                    "r#type was not specified but it is required when building PlatformDevice",
                )
            })?,
        })
    }