Kevin K
24e3839220
perf: changes internal use of VecMap to Vec for matched values of Args
...
This makes a very big difference for CLIs that parse a large number of
values (think ripgrep over a large directory).
This commit improved the ripgrep parsing of ~2,000 values, simulating
giving ripgrep a bunch of files. Parsing when from ~1,200,000 ns to
~400,000 ns! This was conducted a i7-5600U 2.6GHz
2017-03-10 08:22:31 -05:00
Homu
0e1e6dced6
Auto merge of #894 - porglezomp:feature/customize-version-help, r=kbknapp
...
Allow customizing the --version and --help messages
Fixes #889
This currently doesn't support customizing them from YAML, so it still needs some work.
2017-03-10 22:21:51 +09:00
Caleb Jones
c5dac3fa43
Support loading help_message and version_message from the YAML
2017-03-10 01:54:50 -05:00
Caleb Jones
389c413b70
Allow customizing the --version and --help messages
2017-03-10 01:01:56 -05:00
Homu
cb5c9f7930
Auto merge of #886 - nox:die-libc-die, r=kbknapp
...
Remove direct dependency on libc
It's not actually used anymore anywhere.
2017-03-10 07:35:30 +09:00
Anthony Ramine
f4939ad560
Remove direct dependency on libc
...
It's not actually used anymore anywhere.
2017-03-05 19:44:16 +01:00
Homu
7b08a0a583
Auto merge of #879 - kbknapp:perf-imp, r=kbknapp
...
Perf imp
2017-03-01 01:49:16 +09:00
Kevin K
ceec86d3bd
tests: fixes lifetime issue in a test
2017-02-28 08:46:21 -05:00
Kevin K
5471b67121
chore: updates version to next release num
2017-02-28 08:30:14 -05:00
Kevin K
a822ad8c27
tests: adds a bench for rustups subcommand parsing
2017-02-28 08:30:14 -05:00
Kevin K
8da0303bc0
perf: vastly reduces the amount of cloning when adding non-global args minus when they're added from App::args which is forced to clone
2017-02-28 08:30:14 -05:00
Kevin K
677f323bce
tests: adds tests to ensure borrowed args don't break
2017-02-28 08:30:14 -05:00
Kevin K
0a922e5f61
tests: adds parsing cases to ripgrep bench
2017-02-28 08:30:14 -05:00
Kevin K
85a636d539
tests(Benches): adds real world benchmarks
2017-02-28 08:30:13 -05:00
Kevin K
0efa411963
perf: refactor to remove unneeded vectors and allocations and checks for significant performance increases
...
Building an `App` struct with a fair number of args/flags/switches, etc. (used ripgrep as test case)
went from taking ~21,000 ns to ~13,000ns.
2017-02-28 08:30:13 -05:00
Kevin K
b55cae5fdb
refactor: removes unused fields and moves some bools to bitfields
2017-02-28 08:30:09 -05:00
Homu
b336bdbbda
Auto merge of #880 - frewsxcv:vec-map, r=kbknapp
...
Bump vec_map.
None
2017-02-28 22:26:58 +09:00
Corey Farwell
242020330d
Bump vec_map.
2017-02-28 00:05:53 -05:00
Kevin K
10c1d1bd3e
Merge branch 'master' of github.com:kbknapp/clap-rs
2017-02-27 00:37:43 -05:00
Corey Farwell
5ee2665e7a
Implement ExactSizeIterator
for Values
. ( #877 )
2017-02-26 23:20:52 -05:00
Igor Gnatenko
40052bdc0c
switch to regex 0.2 ( #876 )
...
Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
2017-02-26 22:37:03 -05:00
Homu
389658d945
Auto merge of #875 - ignatenkobrain:patch-1, r=kbknapp
...
Cargo.toml: bump bitflags
2017-02-27 10:07:51 +09:00
Igor Gnatenko
d19d56e635
Cargo.toml: bump bitflags
2017-02-25 23:57:14 +01:00
Homu
6ec80662d3
Auto merge of #872 - kbknapp:patch-1b, r=kbknapp
...
Patch 1b
2017-02-23 12:00:38 +09:00
Kevin K
6bf94606c2
test: fixes failing doc test
2017-02-22 20:37:56 -05:00
Marco A L Barbosa
fa26d40a18
Fix missing line before code block
2017-02-22 11:25:10 -03:00
Kevin K
5568c072dc
Merge branch 'master' of github.com:kbknapp/clap-rs
2017-02-20 23:51:30 -05:00
Homu
53f3b65d24
Auto merge of #867 - kbknapp:stop-the-leaks, r=kbknapp
...
Stop the leaks
2017-02-21 13:50:35 +09:00
Kevin K
588f373ea8
chore: rustfmt run
2017-02-20 21:16:14 -05:00
Kevin K
8c2dd28718
fix: fixes some memory leaks when an error is detected and clap exits
2017-02-20 21:16:07 -05:00
Kevin K
416d6719a7
Merge branch 'master' of github.com:kbknapp/clap-rs
2017-02-20 21:09:29 -05:00
Kevin K
6b5725836f
Merge branch 'master' into issues-833,849
2017-02-20 20:36:15 -05:00
Kevin K
1ae2110801
fix: fixes a trait that's marked private accidentlly, but should be crate internal public
2017-02-20 20:31:57 -05:00
Homu
f1ae47664b
Auto merge of #865 - NickeZ:patch-1, r=kbknapp
...
Fix minor documentation bug
2017-02-21 10:30:20 +09:00
Kevin K
10ca4d1e21
chore: rustfmt run
2017-02-20 20:24:28 -05:00
Kevin K
a01812fed8
tests: adds tests for requiring the equals syntax in options
2017-02-20 20:24:28 -05:00
Kevin K
f002693dec
feat(Options): adds the ability to require the equals syntax with options --opt=val
...
Closes #833
2017-02-20 20:24:27 -05:00
Kevin K
e0f7722685
style: improves the style of doc tests and examples to increase readability and uniformity
2017-02-20 20:24:27 -05:00
Kevin K
0f2a378219
api: provides default_value_os and default_value_if[s]_os
...
One can now define default values that contain invalid UTF-8.
The underlying implementation has also been changed to use OsStrs in order to avoid duplication
of code and provide the new APIs basically for free.
Closes #849
2017-02-20 20:24:24 -05:00
Kevin K
fb7057cc7a
refactor(Arg): removes duplicate and uses Base, Switched, and Valued internally now
2017-02-20 19:06:36 -05:00
Kevin K
65b12f9107
chore: clippy run
2017-02-20 19:06:36 -05:00
Niklas Claesson
1971209c0c
Fix minor documentation bug
2017-02-20 23:13:06 +01:00
Kevin K
e0f6b35187
Merge branch 'master' of github.com:kbknapp/clap-rs
2017-02-19 13:31:25 -05:00
Homu
e5159f77e7
Auto merge of #862 - pkgw:pr-atty, r=kbknapp
...
refactor: use the atty crate for isatty() detection
Not only does this remove some unsafe code from clap itself, `atty` does the right thing on Windows too. This isn't relevant now since we don't currently support colorized output on Windows, but will come in handy if/when we implement that feature (#836 ).
2017-02-20 03:30:39 +09:00
Peter Williams
68e03681d8
refactor: use the atty crate for isatty() detection
...
Not only does this remove some unsafe code from clap itself, `atty` does the
right thing on Windows too. This isn't relevant now since we don't currently
support colorized output on Windows, but will come in handy if/when we
implement that feature (#836 ).
2017-02-19 11:12:55 -05:00
Kevin K
595926382e
Merge branch 'master' of github.com:kbknapp/clap-rs
2017-02-18 11:45:48 -05:00
Kevin K
6f9a0baff2
chore: increase version ( #858 )
2017-02-18 11:45:30 -05:00
Kevin K
9626a1fbe7
chore: increase version
2017-02-18 11:44:38 -05:00
Homu
afd55dda1d
Auto merge of #857 - eddyb:patch-1, r=kbknapp
...
Add missing fragment specifier to a clap_app! rule.
Introduced in #238 , this bug affects both `clap` `1.*` and `2.*` and was found by rust-lang/rust#39419 .
I'd suggest releasing not only `2.20.5`, but also `1.5.6`, to cover downstream crates still on `1.5.5`.
2017-02-19 01:39:53 +09:00
Eduard-Mihai Burtescu
f28b2353b2
Add missing fragment specifier to a clap_app! rule.
2017-02-18 12:03:41 +02:00