| 49 | } // namespace |
| 50 | |
| 51 | static TOptions ParseOptions(const int argc, const char* argv[]) { |
| 52 | TOptions options; |
| 53 | auto parser = NLastGetopt::TOpts::Default(); |
| 54 | parser |
| 55 | .AddLongOption('t', "type") |
| 56 | .DefaultValue("ui64") |
| 57 | .RequiredArgument("TYPE") |
| 58 | .StoreResult(&options.ValueType) |
| 59 | .Help("type of value or array element, possible: ui16, i16, ui32, i32, ui64, i64, float, double, bool," |
| 60 | " TString, TUtf16String (utf-8 in input)"); |
| 61 | parser |
| 62 | .AddCharOption('0') |
| 63 | .NoArgument() |
| 64 | .SetFlag(&options.NoValues) |
| 65 | .Help("Do not store values to produce TCompactTrieSet compatible binary"); |
| 66 | parser |
| 67 | .AddLongOption('a', "array") |
| 68 | .NoArgument() |
| 69 | .SetFlag(&options.Vector) |
| 70 | .Help("Values are arrays (of some type, depending on -t flag). Input looks like" |
| 71 | " 'key <TAB> value1 <TAB> .. <TAB> valueN' (N may differ from line to line)"); |
| 72 | parser |
| 73 | .AddCharOption('S') |
| 74 | .RequiredArgument("INT") |
| 75 | .StoreResult(&options.ArraySize) |
| 76 | .Help("Values are fixed size not packed (!) arrays, may used for mapping classes/structs" |
| 77 | " with monotyped fields"); |
| 78 | parser |
| 79 | .AddLongOption('e', "allow-empty") |
| 80 | .NoArgument() |
| 81 | .SetFlag(&options.AllowEmptyKey) |
| 82 | .Help("Allow empty key"); |
| 83 | parser |
| 84 | .AddLongOption('i', "input") |
| 85 | .DefaultValue("-") |
| 86 | .RequiredArgument("FILE") |
| 87 | .StoreResult(&options.Infile) |
| 88 | .Help("Input file"); |
| 89 | parser |
| 90 | .AddLongOption('m', "minimize") |
| 91 | .NoArgument() |
| 92 | .SetFlag(&options.Minimized) |
| 93 | .Help("Minimize tree into a DAG"); |
| 94 | parser |
| 95 | .AddLongOption('f', "fast-layout") |
| 96 | .NoArgument() |
| 97 | .SetFlag(&options.FastLayout) |
| 98 | .Help("Make fast layout"); |
| 99 | parser |
| 100 | .AddLongOption('v', "verbose") |
| 101 | .NoArgument() |
| 102 | .Help("Be verbose - show progress & stats"); |
| 103 | parser |
| 104 | .AddLongOption('s', "prefix-grouped") |
| 105 | .NoArgument() |
| 106 | .Help("Assume input is prefix-grouped by key (for every prefix all keys with this prefix" |
| 107 | " come in one group; greatly reduces memory usage)"); |
| 108 | parser |
no test coverage detected