Commit graph

85 commits

Author SHA1 Message Date
Ryan Geary
63b9eea62c Fix readme exclusivity mistake
fixes #14
2020-06-08 11:20:25 -04:00
Ryan Geary
dfbeb102bb Add CONTRIBUTING.md 2020-06-08 11:10:03 -04:00
Ryan Geary
0cd42bb4fb Prepare for crates.io release 2020-06-07 23:15:44 -04:00
Ryan Geary
18b3440bec Add license line to Cargo 2020-06-07 16:53:22 -04:00
Ryan Geary
5d65fb99ce Add updated documentation 2020-06-02 15:09:00 -04:00
Ryan Geary
588ff3ef1b Advance to v1.1.0 2020-06-02 15:02:48 -04:00
Ryan Geary
a66621380b Add character-wise chooseing
Alphabetize structopt options

Add character-wise tests

Add character-wise switch

Add print-after-end test

Add empty default separator for char-wise mode

Add char-wise forward and negative printing

Add pure reverse printing

Change to char_wise to user `char` instead of `u8`

Adds support for unicode (read: emojis)

Adds a newline char to end of each char-wise test because that's how it
is

Add writing traits for better code structure

Merge repetitive codepaths with generics

Unify print_choice_* funtion names

Reorder functions in choice module

Rename variable to avoid name confusion

Make default case for loop more readable

Abstract default case print loop

Add e2e test

Move vec create to print_choice_negative
2020-06-02 14:41:30 -04:00
Ryan Geary
5f77249672 Add Arch Linux installation to readme 2020-04-13 13:45:30 -04:00
Ryan Geary
7243843d2f [FEATURE] specify output field delimiter (#8)
Add output_field_separator option

Add output_field_separator tests

Change structopt req to 0.3

Separate negative choices into a function

Prevent tail printing output_field_separator

Change OFS to Option<String> with a default value of " "

Reorder arguments to write_bytes to parallel print_choice

Print output_separator in main loop if applicable

Add `cargo test` to Makefile

Add write_separator function
2020-04-06 17:13:57 -04:00
Ryan Geary
d40c9d5234 Non-greedy String Splitting (#7)
* Add non_greedy flag

* Add non-greedy tests

* Prevent printing spaces for empty fields

* Prevent filtering non-empty fields when non-greedy
2020-04-04 18:09:37 -04:00
Artem Polishchuk
024edfc8f4 Update readme.md 2020-04-04 18:02:11 -04:00
Artem Polishchuk
4d78788eb5 Add packaging status 2020-04-04 18:02:11 -04:00
Ryan Geary
6dc46adb8b Move Cargo.toml to v1.0.0 2020-04-04 13:44:18 -04:00
Ryan Geary
fabb9ced5e
Create LICENSE 2020-04-02 21:27:13 -04:00
Ryan Geary
9bf02141f3 Fix documentation inconsistency 2020-04-02 15:25:47 -04:00
Ryan Geary
b0aa310c83 Update documentation for v0.1.4 2020-04-02 10:14:29 -04:00
Ryan Geary
e78ea2783c Add negative choice and parsing tests
Allow negative ranges as long as they aren't reversed too

Allow reversed negative ranges iff both indices are negative
2020-04-01 13:15:32 -04:00
Ryan Geary
a90a5cb742 Cargo fmt 2020-03-17 13:44:14 -04:00
Ryan Geary
41e060680e Handle failure to open input file 2020-03-17 13:43:49 -04:00
Ryan Geary
dfe4c2cad0 Reassign exit codes and clean up e2e_test
0 - Success
1 - Argument parsing error
2 - Regex compilation error
2020-03-17 13:26:35 -04:00
Ryan Geary
5b5fa0ed7a Use debuginfo only for flamegraph builds 2020-03-16 19:56:07 -04:00
Ryan Geary
47c9c73c4b Separate Opt into separate mod 2020-03-15 19:40:41 -04:00
Ryan Geary
f87a3f1658 Use lazy_static for parse_choice regex 2020-03-15 16:30:59 -04:00
Ryan Geary
afb4bf4734 Return ParseIntErrors from parse_choice 2020-03-15 16:14:17 -04:00
Ryan Geary
81589d8aab Remove lingering flame_it cfg 2020-03-15 14:51:26 -04:00
Ryan Geary
c81efcf42f Add custom BufReader to cut down on allocation time 2020-03-15 14:46:50 -04:00
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