fn write_column<R: Rng>(
    canvas: &mut Canvas<'_>,
    col: &ColumnSample<'_>,
    level: u32,
    wpos2d: Vec2<i32>,
    z_range: Range<i32>,
    z_ranges: &[Range<i32>],
    tunnel: Tunnel,
    dimensions: (f32, f32, f32),
    giant_tree_dist: f32,
    structure_cache: &mut SmallCache<Vec3<i32>, Option<CaveStructure>>,
    structure_seeds: &[(Vec2<i32>, u32); 9],
    rng: &mut R
)