pub(crate) fn generate<T>(
inner_len: usize,
outer_len: usize,
dist: DataDistribution,
selectivity: Option<u32>
) -> Result<(Vec<T>, Vec<T>), Box<dyn Error>> where
T: Copy + Default + Send + KeyAttribute + FromPrimitive + SampleUniform,