gcp_bigquery_client/model/
table_schema.rs

1use crate::model::table_field_schema::TableFieldSchema;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Default, Clone, Serialize, Deserialize)]
5#[serde(rename_all = "camelCase")]
6pub struct TableSchema {
7    /// Describes the fields in a table.
8    #[serde(skip_serializing_if = "Option::is_none")]
9    pub fields: Option<Vec<TableFieldSchema>>,
10}
11
12impl TableSchema {
13    pub fn new(fields: Vec<TableFieldSchema>) -> Self {
14        Self { fields: Some(fields) }
15    }
16
17    pub fn fields(&self) -> &Option<Vec<TableFieldSchema>> {
18        &self.fields
19    }
20
21    pub fn field_count(&self) -> usize {
22        self.fields.as_ref().map_or(0, |fields| fields.len())
23    }
24
25    pub fn is_none(&self) -> bool {
26        self.fields.is_none()
27    }
28}