xref: /aosp_15_r20/external/openscreen/util/json/json_value.h (revision 3f982cf4871df8771c9d4abe6e9a6f8d829b2736)
1*3f982cf4SFabien Sanglard // Copyright 2019 The Chromium Authors. All rights reserved.
2*3f982cf4SFabien Sanglard // Use of this source code is governed by a BSD-style license that can be
3*3f982cf4SFabien Sanglard // found in the LICENSE file.
4*3f982cf4SFabien Sanglard 
5*3f982cf4SFabien Sanglard #ifndef UTIL_JSON_JSON_VALUE_H_
6*3f982cf4SFabien Sanglard #define UTIL_JSON_JSON_VALUE_H_
7*3f982cf4SFabien Sanglard 
8*3f982cf4SFabien Sanglard #include "absl/strings/string_view.h"
9*3f982cf4SFabien Sanglard #include "absl/types/optional.h"
10*3f982cf4SFabien Sanglard #include "json/value.h"
11*3f982cf4SFabien Sanglard 
12*3f982cf4SFabien Sanglard #define JSON_EXPAND_FIND_CONSTANT_ARGS(s) (s), ((s) + sizeof(s) - 1)
13*3f982cf4SFabien Sanglard 
14*3f982cf4SFabien Sanglard namespace openscreen {
15*3f982cf4SFabien Sanglard 
16*3f982cf4SFabien Sanglard absl::optional<int> MaybeGetInt(const Json::Value& message,
17*3f982cf4SFabien Sanglard                                 const char* first,
18*3f982cf4SFabien Sanglard                                 const char* last);
19*3f982cf4SFabien Sanglard 
20*3f982cf4SFabien Sanglard absl::optional<absl::string_view> MaybeGetString(const Json::Value& message);
21*3f982cf4SFabien Sanglard 
22*3f982cf4SFabien Sanglard absl::optional<absl::string_view> MaybeGetString(const Json::Value& message,
23*3f982cf4SFabien Sanglard                                                  const char* first,
24*3f982cf4SFabien Sanglard                                                  const char* last);
25*3f982cf4SFabien Sanglard 
26*3f982cf4SFabien Sanglard }  // namespace openscreen
27*3f982cf4SFabien Sanglard 
28*3f982cf4SFabien Sanglard #endif  // UTIL_JSON_JSON_VALUE_H_
29