///|
fn main raise {
let config = @sort.SortConfig::new(
memory_budget_bytes=512,
max_open_runs=2,
max_record_bytes=128,
)
let builder = @sort.RunBuilder::new(config)
let runs : Array[Array[@sort.SortRecord]] = []
for
pair in [
("c", "charlie"),
("a", "alpha-first"),
("b", "bravo"),
("a", "alpha-second"),
] {
let (key, payload) = pair
match builder.push(payload, key) {
Some(run) => runs.push(run)
None => ()
}
}
match builder.finish() {
Some(run) => runs.push(run)
None => ()
}
for record in @sort.merge_sorted_runs(runs, config.order) {
println(record.payload)
}
}