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: _cmaf_group_settings.rs
    path of file: ./repos/aws-sdk-rust/sdk/mediaconvert/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.

/// Settings related to your CMAF output package. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/outputs-file-ABR.html.
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct CmafGroupSettings {
    /// By default, the service creates one top-level .m3u8 HLS manifest and one top -level .mpd DASH manifest for each CMAF output group in your job. These default manifests reference every output in the output group. To create additional top-level manifests that reference a subset of the outputs in the output group, specify a list of them here. For each additional manifest that you specify, the service creates one HLS manifest and one DASH manifest.
    pub additional_manifests: ::std::option::Option<::std::vec::Vec<crate::types::CmafAdditionalManifest>>,
    /// A partial URI prefix that will be put in the manifest file at the top level BaseURL element. Can be used if streams are delivered from a different UR
    
    pub fn build(self) -> crate::types::CmafGroupSettings {
        crate::types::CmafGroupSettings {
            additional_manifests: self.additional_manifests,
            base_url: self.base_url,
            client_cache: self.client_cache,
            codec_specification: self.codec_specification,
            dash_manifest_style: self.dash_manifest_style,
            destination: self.destination,
            destination_settings: self.destination_settings,
            encryption: self.encryption,
            fragment_length: self.fragment_length,
            image_based_trick_play: self.image_based_trick_play,
            image_based_trick_play_settings: self.image_based_trick_play_settings,
            manifest_compression: self.manifest_compression,
            manifest_duration_format: self.manifest_duration_format,
            min_buffer_time: self.min_buffer_time,
            min_final_segment_length: self.min_final_segment_length,
            mpd_manifest_bandwidth_type: self.mpd_manifest_bandwidth_type,
            mpd_profile: self.mpd_profile,
            pts_offset_handling_for_b_frames: self.pts_offset_handling_for_b_frames,
            segment_control: self.segment_control,
            segment_length: self.segment_length,
            segment_length_control: self.segment_length_control,
            stream_inf_resolution: self.stream_inf_resolution,
            target_duration_compatibility_mode: self.target_duration_compatibility_mode,
            video_composition_offsets: self.video_composition_offsets,
            write_dash_manifest: self.write_dash_manifest,
            write_hls_manifest: self.write_hls_manifest,
            write_segment_timeline_in_representation: self.write_segment_timeline_in_representation,
        }
    }