| 110 | } |
| 111 | |
| 112 | bool ParseFloatFlag(tensorflow::StringPiece arg, tensorflow::StringPiece flag, |
| 113 | const std::function<bool(float)>& hook, |
| 114 | bool* value_parsing_ok) { |
| 115 | *value_parsing_ok = true; |
| 116 | if (absl::ConsumePrefix(&arg, "--") && absl::ConsumePrefix(&arg, flag) && |
| 117 | absl::ConsumePrefix(&arg, "=")) { |
| 118 | char extra; |
| 119 | float parsed_float; |
| 120 | if (sscanf(arg.data(), "%f%c", &parsed_float, &extra) != 1) { |
| 121 | LOG(ERROR) << "Couldn't interpret value " << arg << " for flag " << flag |
| 122 | << "."; |
| 123 | *value_parsing_ok = false; |
| 124 | } else { |
| 125 | *value_parsing_ok = hook(parsed_float); |
| 126 | } |
| 127 | return true; |
| 128 | } |
| 129 | |
| 130 | return false; |
| 131 | } |
| 132 | |
| 133 | } // namespace |
| 134 |
no test coverage detected