// Copyright 2022 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef THIRD_PARTY_RUST_SERDE_JSON_LENIENT_V0_2_WRAPPER_SERDE_JSON_LENIENT_H_ #define THIRD_PARTY_RUST_SERDE_JSON_LENIENT_V0_2_WRAPPER_SERDE_JSON_LENIENT_H_ #include <stdint.h> #include "third_party/rust/cxx/v1/cxx.h" namespace serde_json_lenient { // An opaque pointer provided by the caller to decode_json() which is passed // through to the visitor functions on `Functions`. struct ContextPointer; // C++ functions that provide the functionality for each stop by the JSON // deserializer in order to construct the output in C++ from the JSON // deserialization. // // TODO(danakj): CXX does not support function pointers, so we need to use a // struct of methods (this struct) for it to call instead of a structure of // function pointers which could be defined directly in the Rust code. struct Functions { … }; } // namespace serde_json_lenient #endif // THIRD_PARTY_RUST_SERDE_JSON_LENIENT_V0_2_WRAPPER_SERDE_JSON_LENIENT_H_