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: _topic_calculated_field.rs
    path of file: ./repos/aws-sdk-rust/sdk/quicksight/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>A structure that represents a calculated field.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
pub struct TopicCalculatedField {
    /// <p>The calculated field name.</p>
    pub calculated_field_name: ::std::string::String,
    /// <p>The calculated field description.</p>
    pub calculated_field_description: ::std::option::Option<::std::string::String>,
    /// <p>The calculated field expression.</p>
    pub expression: ::std::string::String,
    /// <p>The other names or aliases for the calculated field.</p>
    pub calculated_field_synonyms: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
    /// <p>A boolean value that indicates if a calculated field is included in the topic.</p>
    pub is_included_in_topic: bool,
    /// <p>A Boolean value that indicates if a calculated field is visible in the autocomplete.</p>
    pub disable_indexing: ::std::option::Option<bool>,
    /// <p>The column data role for a calculated field. Valid values for this structure are <code>DIMENSION</code> and <code>MEASURE</code>.</p>
    pub column_data_role: ::std::option::Option<crate::types::ColumnDataRole>,
    /// <p>The level of time precision that
    
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        let mut formatter = f.debug_struct("TopicCalculatedFieldBuilder");
        formatter.field("calculated_field_name", &self.calculated_field_name);
        formatter.field("calculated_field_description", &self.calculated_field_description);
        formatter.field("expression", &"*** Sensitive Data Redacted ***");
        formatter.field("calculated_field_synonyms", &self.calculated_field_synonyms);
        formatter.field("is_included_in_topic", &self.is_included_in_topic);
        formatter.field("disable_indexing", &self.disable_indexing);
        formatter.field("column_data_role", &self.column_data_role);
        formatter.field("time_granularity", &self.time_granularity);
        formatter.field("default_formatting", &self.default_formatting);
        formatter.field("aggregation", &self.aggregation);
        formatter.field("comparative_order", &self.comparative_order);
        formatter.field("semantic_type", &self.semantic_type);
        formatter.field("allowed_aggregations", &self.allowed_aggregations);
        formatter.field("not_allowed_aggregations", &self.not_allowed_aggregations);
        formatter.field("never_aggregate_in_filter", &self.never_aggregate_in_filter);
        formatter.field("cell_value_synonyms", &self.cell_value_synonyms);
        formatter.field("non_additive", &self.non_additive);
        formatter.finish()
    }