diff options
Diffstat (limited to 'openssl/types-parsers.cxx')
-rw-r--r-- | openssl/types-parsers.cxx | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/openssl/types-parsers.cxx b/openssl/types-parsers.cxx new file mode 100644 index 0000000..4b96c65 --- /dev/null +++ b/openssl/types-parsers.cxx @@ -0,0 +1,34 @@ +// file : openssl/types-parsers.cxx -*- C++ -*- +// copyright : Copyright (c) 2014-2018 Code Synthesis Ltd +// license : MIT; see accompanying LICENSE file + +#include <openssl/types-parsers.hxx> + +#include <openssl/options.hxx> // openssl::cli namespace + +namespace openssl +{ + namespace cli + { + void parser<simulate_outcome>:: + parse (simulate_outcome& x, bool& xs, scanner& s) + { + xs = true; + const char* o (s.next ()); + + if (!s.more ()) + throw missing_value (o); + + const string v (s.next ()); + + try + { + x = to_simulate_outcome (v); + } + catch (const invalid_argument&) + { + throw invalid_value (o, v); + } + } + } +} |