Skip to content

Commit dc8732e

Browse files
committed
examples added.
1 parent 60cff11 commit dc8732e

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

Cargo.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ version = "0.1.0"
44
edition = "2021"
55

66
[dependencies]
7+
bytesize = { version = "^1.1", optional = true }
78
deepsize = { version = "^0.2", optional = true }
9+
env_logger = { version = "^0.9", optional = true}
810
log = "0.4"
911
rayon = "^1.5"
1012
rmp-serde = "^0.15"
@@ -17,3 +19,7 @@ rand = "^0.8"
1719

1820
[features]
1921
memory-limit = ["deepsize"]
22+
23+
[[example]]
24+
name = "quickstart"
25+
required-features = ["bytesize", "env_logger"]

examples/quickstart.rs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
use std::fs;
2+
use std::io::{self, prelude::*};
3+
use std::path;
4+
5+
use bytesize::MB;
6+
use env_logger;
7+
use log;
8+
9+
use ext_sort::buffer::mem::MemoryLimitedBufferBuilder;
10+
use ext_sort::{ExternalSorter, ExternalSorterBuilder};
11+
12+
fn main() {
13+
env_logger::Builder::new().filter_level(log::LevelFilter::Debug).init();
14+
15+
let input_reader = io::BufReader::new(fs::File::open("input.txt").unwrap());
16+
let mut output_writer = io::BufWriter::new(fs::File::create("output.txt").unwrap());
17+
18+
let sorter: ExternalSorter<String, MemoryLimitedBufferBuilder> = ExternalSorterBuilder::new()
19+
.with_tmp_dir(path::Path::new("tmp"))
20+
.with_buffer(MemoryLimitedBufferBuilder::new(50 * MB))
21+
.build()
22+
.unwrap();
23+
24+
let sorted = sorter.sort(input_reader.lines()).unwrap();
25+
26+
for item in sorted.map(Result::unwrap) {
27+
output_writer.write_all(format!("{}\n", item).as_bytes()).unwrap();
28+
}
29+
output_writer.flush().unwrap();
30+
}

0 commit comments

Comments
 (0)