Commit graph

109 commits

Author SHA1 Message Date
Ryan Geary
dfc95865d4 Add test and bench rules to Makefile 2020-03-15 14:45:32 -04:00
Ryan Geary
b6d3e4ba5a Add error messages for stdout writes 2020-03-14 23:02:31 -04:00
Ryan Geary
94085bb302 Make regex compilation errors more specific 2020-03-14 22:20:52 -04:00
Ryan Geary
59ada49afd Set version=0.1.3 2020-03-10 00:23:04 -04:00
Ryan Geary
389c29822b Improve performance and add profiling tooling
Add tags, todo, *.bench, *.svg and bench_output to .gitignore

Add test/bench.sh script. bench.sh runs the `bench` command on each
test/long*txt file with range 3:5 and saves the output to a file for
comparing performance across file sizes.

Inline printing in get_choice_slice

Change BufWriter<..stdout..> to BufWriter<T>

Add MockStdout for testing printing

Add more reverse range tests

Simplify word finding with a more uniform bounds check.

Add Makefile for generating flamegraphs

Redefine Choice struct as a start and end integer

Improve algorithm for finding words to print

Settle exclusivity at Config construction time

Add tests for nonexistant field_seps

Add regression test for preceding separator

Use handle.write instead of write! macro for tremendous speed up
2020-03-10 00:03:14 -04:00
Ryan Geary
c729ad3f00 RustFmt 2019-10-24 21:05:09 -04:00
Ryan Geary
f662219407 [BREAKING] Default to inclusive ranges, -x for exclusive 2019-10-13 22:00:15 -04:00
Ryan Geary
0be16bf1d9 Add reverse ranges 2019-10-13 21:40:59 -04:00
Ryan Geary
e7169ea2e8 Add print_out_of_order test 2019-10-13 20:32:00 -04:00
Ryan Geary
c204f99444 Reorganize massively 2019-10-10 21:24:07 -04:00
Ryan Geary
f722cbcbbb Remove repeated Regex compilation 2019-10-09 18:23:02 -04:00
Ryan Geary
09ddbb4f65 Use BufWriter and write(ln)! instead of print(ln)! 2019-09-29 23:10:33 -04:00
Ryan Geary
ba26c1f42d Stop collecting lines of stdin 2019-09-29 23:10:14 -04:00
Ryan Geary
0b1a59ad2a Bump version in Cargo.toml 2019-09-29 17:52:20 -04:00
Ryan Geary
e28bdcce12 Add cargo test to e2etest 2019-09-17 23:48:59 -04:00
Ryan Geary
5c96955257 Add a bunch of get_choice_slice tests 2019-09-17 23:40:35 -04:00
Ryan Geary
4afdc50158 Separate slice finding from printing 2019-09-17 23:40:35 -04:00
Ryan Geary
5703ed02a1 Move parse_choice tests into their own test module 2019-09-17 23:40:35 -04:00
Ryan Geary
55ac2acc8e Add future tests 2019-09-17 23:40:35 -04:00
Ryan Geary
c81af46d4e Add successful parsing tests 2019-09-17 23:40:35 -04:00
Ryan Geary
4eb2ed0396 Test return value on error with e2e test 2019-09-17 23:40:35 -04:00
Ryan Geary
e668d9f508 Add first test 2019-09-17 23:40:35 -04:00
Ryan Geary
fd66e3cfb7 Move most of the processing out of main 2019-09-17 23:40:30 -04:00
Ryan Geary
6c889b3963 Add compilation instructions 2019-09-17 22:06:04 -04:00
Collin Reilly Clark
d226c750ef separate examples to make explanations easier to digest visually 2019-09-16 18:30:56 -04:00
Ryan Geary
2f590f61c9 Update readme 2019-09-11 23:21:26 -04:00
Ryan Geary
49b88bd0be Convert panic!s to eprintln!s and add exit stati 2019-09-11 22:55:32 -04:00
Ryan Geary
da7a536fa6 Add regex matching with field separator 2019-09-11 22:14:57 -04:00
Ryan Geary
5a5a77e88f Unify enumerating lines in print_choice 2019-09-11 11:52:20 -04:00
Ryan Geary
18dcf845fb Add choose 12 test 2019-09-11 11:50:49 -04:00
Ryan Geary
44e5446992 Rename test to e2e_test 2019-09-10 23:51:59 -04:00
Ryan Geary
1d4fd6f48e Ignore all whitespace in testing 2019-09-10 23:51:21 -04:00
Ryan Geary
e7197092b5 Validate vector indeces 2019-09-10 23:51:01 -04:00
Ryan Geary
4b6d44e121 Add basic test suite 2019-09-10 23:36:39 -04:00
Ryan Geary
ddf563d41b Allow for inclusive ranges and move choice parsing into Choice enum 2019-09-10 22:15:57 -04:00
Ryan Geary
8a430e0fdf Update choice help document 2019-09-10 22:14:42 -04:00
Ryan Geary
121d2f9d5a Add Range printing 2019-09-10 21:06:35 -04:00
Ryan Geary
5373821427 RustFmt 2019-09-10 21:06:20 -04:00
Ryan Geary
42b1af66a6 Iterate through lines and choices 2019-09-10 17:59:42 -04:00
Ryan Geary
055f38a9ba Add flag for input file, change inclusive short to n 2019-09-06 17:51:25 -04:00
Ryan Geary
97ef864782 Apply RustFmt 2019-09-06 17:14:03 -04:00
Ryan Geary
be24d64a60 change parse_range -> parse_choice 2019-09-06 16:26:26 -04:00
Ryan Geary
2b299ad9c1 Parse single field numbers 2019-09-06 16:21:13 -04:00
Ryan Geary
8da5f639ed Change arg from Range to Choice 2019-09-06 16:01:21 -04:00
Ryan Geary
2779ed3983 Rework Choice struct 2019-09-06 15:59:53 -04:00
Ryan Geary
1ac2906146 Handle errors in parse_range 2019-09-06 13:28:06 -04:00
Ryan Geary
46d79d7250 Add explicit dyn before Traits 2019-09-06 13:27:38 -04:00
Ryan Geary
b7c14b9c2d Take one range 2019-09-06 11:54:47 -04:00
Ryan Geary
3fdd3da507 Make field_separator an Option<> 2019-09-06 11:54:25 -04:00
Ryan Geary
bec5f2be5c Add parse_range function 2019-09-06 11:54:05 -04:00