pub trait IndexTrait {
// Required methods
fn get_alias(&self) -> Option<String>;
fn get_type(&self) -> Box<dyn IndexTypeTrait>;
fn get_fields(&self) -> Vec<String>;
// Provided methods
fn get_sort(&self) -> IndexSort { ... }
fn get_create_sql(&self) -> String { ... }
}