| // Copyright 2020 The Chromium Authors | |
| // Use of this source code is governed by an MIT-style license that can be | |
| // found in the LICENSE file or at https://opensource.org/licenses/MIT. | |
| #ifndef THIRD_PARTY_LIBURLPATTERN_PARSE_H_ | |
| #define THIRD_PARTY_LIBURLPATTERN_PARSE_H_ | |
| #include <string_view> | |
| #include "base/component_export.h" | |
| #include "base/types/expected.h" | |
| #include "third_party/abseil-cpp/absl/status/status.h" | |
| #include "third_party/liburlpattern/options.h" | |
| #include "third_party/liburlpattern/utils.h" | |
| namespace liburlpattern { | |
| class Pattern; | |
| // Parse a pattern string and return the result. The parse will fail if the | |
| // input |pattern| is not valid UTF-8. Currently only group names may actually | |
| // contain non-ASCII characters, however. Unicode characters in other parts of | |
| // the pattern will cause an error to be returned. A |callback| must be | |
| // provided to validate and encode plain text parts of the pattern. An | |
| // |options| value may be provided to override default behavior. | |
| COMPONENT_EXPORT(LIBURLPATTERN) | |
| base::expected<Pattern, absl::Status> Parse(std::string_view pattern, | |
| EncodeCallback callback, | |
| const Options& options = Options()); | |
| } // namespace liburlpattern | |
| #endif // THIRD_PARTY_LIBURLPATTERN_PARSE_H_ |