pub trait ColumnData {
// Required methods
fn sql_type(&self) -> SqlType;
fn save(&self, encoder: &mut Encoder, start: usize, end: usize);
fn len(&self) -> usize;
fn push(&mut self, value: Value);
fn at(&self, index: usize) -> ValueRef<'_>;
fn clone_instance(&self) -> BoxColumnData;
// Provided methods
fn is_empty(&self) -> bool { ... }
unsafe fn get_internal(
&self,
_pointers: &[*mut *const u8],
_level: u8
) -> Result<()> { ... }
fn cast_to(
&self,
_this: &ArcColumnData,
_target: &SqlType
) -> Option<ArcColumnData> { ... }
}