-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FEATURE] Add sharg-parser submodule and replace the seqan3::argument_parser. #2954
Conversation
This pull request is being automatically deployed with Vercel (learn more). 🔍 Inspect: https://vercel.com/seqan/seqan3/7akSVV74g9NzS31FN6ytVf37692e [Deployment for 9daf967 failed] |
Codecov Report
@@ Coverage Diff @@
## master #2954 +/- ##
==========================================
+ Coverage 98.21% 98.59% +0.38%
==========================================
Files 274 258 -16
Lines 12216 10336 -1880
==========================================
- Hits 11998 10191 -1807
+ Misses 218 145 -73
Continue to review full report at Codecov.
|
b851031
to
37a5e79
Compare
We have to do either of both: namespace seqan3::custom
{
// Specialise the seqan3::custom::argument_parsing data structure to enable parsing of std::errc.
template <>
struct sharg::custom::argument_parsing<std::errc>
{
// ...
};
} // namespace seqan3::custom namespace sharg::custom
{
// Specialise the sharg::custom::argument_parsing data structure to enable parsing of std::errc.
template <>
struct argument_parsing<std::errc>
{
// ...
};
} // namespace sharg::custom |
// Specialise the seqan3::custom::argument_parsing data structure to enable parsing of std::errc.
template <>
struct seqan3::custom::argument_parsing<std::errc>
{
// ...
}; works and should be promoted |
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
This overload would be needed anyway when using foo with the seqan3::argument_parser. It was not enforced by the validator itself but is enforced in sharg. Since you don't use validators without the argument_parser this can be considered a fix not an API break.
This gets rid of dependency on the private test accessor on seqan3::detail::format_help. When we use the sharg parser, we do not have access to format_help anymore.
We will include sharg as a submodule, but not integrate it into seqan3 namespace |
Blocked by
#2952#2970This PR does a lot.
format_parse_validator_test
where enumfoo
needs anenumeration_names
overload in order to work with validators and the argument parser. This was not enforced by the validator itself, but is enforced in sharg. Since you don't use validators without the argument_parser this can be considered a fix not an API break.format_parse_validator_test
by comparing the output with filter views instead of accessing the private memberconsole_layout
to set the terminal width, s.t. the output is comparable. Thesharg::detail::help+format
would otherwise need to befriend the seqan3 test accessor but this would add a dependency on seqan3.using namespace sharg;
declaration. The following exceptions had to be made:enumeration_names
CPO can be satisfied by overloadingseqan3::custom::argument_parsing
. This must be done with the explicit, complete namespace instead of opening the namespaceseqan3::custom{ ... }
.Once everything compiles I will make separate commits for reviews