/** * Bounds of the ``ATable`` to split. */ public struct SplitLimit { /** * First column index [0; last]. */ uint first; /** * Last column index [first; ncols - 1]. */ uint last; /** * Maximum of columns per page [1; ncols]. */ uint max_cols; } void print_list (List array) { for (var i = 0; i < array.length(); ++i) { stdout.printf ("%lu %lu %lu\n", array.nth(i).data.first, array.nth(i).data.last, array.nth(i).data.max_cols); } } void main () { var array = new List (); SplitLimit lim = { 9, 11, 3 }; array.append (lim); lim = { 2, 6, 2 }; array.append (lim); lim = { 13, 16, 1 }; array.append (lim); //array.append ("ccc"); //array.append ("aaa"); //array.append ("bbb"); print_list (array); stdout.puts ("--------\n"); array.sort ((a, b) => { stdout.printf ("a.first=%lu\n", a.first); if (a.first < b.first) return -1; if (a.first > b.first) return 1; return 0; }); stdout.puts ("--------\n"); print_list (array); }