chemlib/jsonb/
element_properties.rsuse serde::{Deserialize, Serialize};
use uuid::Uuid;
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct ElementProperties {
#[serde(skip_serializing_if = "Option::is_none")]
pub appearance: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub boil: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub discovered_by: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub melt: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub molar_heat: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub named_by: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub number: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub period: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub source: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub spectral_img: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub summary: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub symbol: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub xpos: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ypos: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub shells: Option<Vec<i32>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub electron_configuration: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub selectron_configuration_semantic: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub electron_affinity: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub electronegativity_pauling: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ionization_energies: Option<Vec<f32>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub allotrope: Option<Vec<Uuid>>,
}