pub trait EntityMetadata {
    const TABLE_NAME: &'static str;

    type Columns: 'static;
    const C: &'static Self::Columns;
    const COLUMN_NAMES: &'static [&'static str];
}

#[derive(Debug)]
pub struct EntityColumn {
    pub index: usize,
    pub name: &'static str,
}

impl EntityColumn {
    pub const fn new(index: usize, name: &'static str) -> Self {
        return Self { index, name };
    }
}
