use crate::common;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct FieldCapability {
#[serde(rename = "aggregatable")]
pub aggregatable: bool,
#[serde(
rename = "non_searchable_indices",
default,
skip_serializing_if = "Option::is_none"
)]
pub non_searchable_indices: Option<common::Indices>,
#[serde(rename = "indices", default, skip_serializing_if = "Option::is_none")]
pub indices: Option<common::Indices>,
#[serde(rename = "searchable")]
pub searchable: bool,
#[serde(
rename = "metadata_field",
default,
skip_serializing_if = "Option::is_none"
)]
pub metadata_field: Option<bool>,
#[serde(rename = "type")]
pub r#type: String,
#[serde(rename = "meta", default, skip_serializing_if = "Option::is_none")]
pub meta: Option<serde_json::Value>,
#[serde(
rename = "non_aggregatable_indices",
default,
skip_serializing_if = "Option::is_none"
)]
pub non_aggregatable_indices: Option<common::Indices>,
}
impl FieldCapability {
pub fn new(aggregatable: bool, searchable: bool, r#type: String) -> FieldCapability {
FieldCapability {
aggregatable,
non_searchable_indices: None,
indices: None,
searchable,
metadata_field: None,
r#type,
meta: None,
non_aggregatable_indices: None,
}
}
}