Commit graph

100 commits

Author SHA1 Message Date
Ryan Geary
abde65491b Add GitHub action to create GitHub release 2020-08-16 09:36:40 -04:00
Ryan Geary
064efa3fcb Bump to version 1.3.1 2020-08-13 17:51:05 -04:00
Ryan Geary
76461e0a1d Fix blank line getting printed with field_separator
This changes the onus of removing trailing newlines when it matters to
the caller to print_choice.
2020-08-13 17:43:16 -04:00
Ryan Geary
5981201700 Move make release rule to be default 2020-08-13 17:42:44 -04:00
Ryan Geary
1dc35e8cd7 Bump to version 1.3.0 2020-06-26 16:31:14 -04:00
Collin Reilly Clark
05739d0146 add brew package to readme.md
closes #21
2020-06-26 16:24:36 -04:00
Ryan Geary
710b95e866 Use LineWriter when input is stdin (#10) 2020-06-24 22:27:03 -04:00
Ryan Geary
2ee77aa848 Move backslash escaping to separate crate 2020-06-17 20:50:49 -04:00
Ryan Geary
767b9303f2 Add backslash escape parsing (#26) 2020-06-17 19:24:05 -04:00
Ryan Geary
0e422090d3 Add crates.io GitHub action 2020-06-16 20:03:07 -04:00
Ryan Geary
04af6f2304 Add one_indexed flag (#23) 2020-06-15 20:50:30 -04:00
Ryan Geary
152b4fb77d Bump version to 1.2.0 2020-06-08 23:23:33 -04:00
Ryan Geary
fc6a2ddbda Add regression tests for #16 2020-06-08 22:52:47 -04:00
Ryan Geary
263f64e674 Create rust.yml 2020-06-08 22:29:04 -04:00
Ryan Geary
1ee01c6de0 Add alternate Rust-y range syntax (#11)
Refactor to support choice 'kind'

Add ParseRangeError

Add rust syntax range parsing tests

Implement rust syntax parsing

Change parse to not anticipate exclusivity

Add choice tests

Implement Rust syntax choices

Show that there are multiple in opt.choice*s*

Refactor repeated code in choice tests

Update documentation to reflect Rust range syntax
2020-06-08 22:16:02 -04:00
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