gaia_access 0.2.0

Access the Gaia ESA Archive for astronomical data.
Documentation
// This code is generated by generate_code.py, do not modify it manually.

//! This module contains all the known columns in the frame_rotator_source table.

use crate::traits::{Column, Table};

/// Sources used to compute the Gaia reference frame.
///
/// The AGIS frame rotator algorithm has two different parts: the reference
/// frame orientation; and the reference frame spin. The reference frame
/// orientation is fixed using the International Earth Rotation and
/// Reference System Service (=IERS) position of a subset of IERS sources
/// defining the third realization of the International Coordinate Reference
/// Frame (Charlot et al., 2020, submitted to A&A),
/// http://hpiers.obspm.fr/icrs-pc/newwww/icrf/index.php. The reference
/// frame spin is defined using the Gaia proper motion of a list of QSOs.
/// The reference frame algorithms have an outliers scheme. Hence for each
/// aspect we provide the considered sources and the used sources actually
/// used, and the number of used sources might be lower than the number of
/// considered sources.
#[allow(non_camel_case_types)]
pub struct frame_rotator_source;

impl Table for frame_rotator_source {
    fn string(&self) -> String {
        "frame_rotator_source".to_string()
    }
}

/// The columns in the frame_rotator_source table.
#[allow(non_camel_case_types)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, strum::Display)]
pub enum Col {
    /// Gaia source identifier
    source_id,
    /// Considered for the reference frame orientation
    considered_for_reference_frame_orientation,
    /// Used for the reference frame orientation
    used_for_reference_frame_orientation,
    /// Considered for the reference frame spin
    considered_for_reference_frame_spin,
    /// Used for the reference frame spin
    used_for_reference_frame_spin,
}

impl Column for Col {}

#[cfg(test)]
/// Collects all the known columns in the frame_rotator_source table.
pub fn collect_known(map: &mut std::collections::HashMap<String, Vec<String>>) {
    let mut col_strings = Vec::new();
    col_strings.push(Col::source_id.to_string());
    col_strings.push(Col::considered_for_reference_frame_orientation.to_string());
    col_strings.push(Col::used_for_reference_frame_orientation.to_string());
    col_strings.push(Col::considered_for_reference_frame_spin.to_string());
    col_strings.push(Col::used_for_reference_frame_spin.to_string());
    map.insert(frame_rotator_source.string(), col_strings);
}