Couchbase C++ SDK 1.4.0 (rev. 59aa900)
Loading...
Searching...
No Matches
lenient_json_transcoder.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2/*
3 * Copyright 2020-Present Couchbase, Inc.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#pragma once
19
23
24namespace couchbase::codec
25{
27
45template<typename Serializer>
47{
48public:
49 template<typename Document>
50 static auto encode(Document document) -> encoded_value
51 {
52 return { Serializer::serialize(document), codec_flags::json_common_flags };
53 }
54
55 template<typename Document>
56 static auto decode(const encoded_value& encoded) -> Document
57 {
58 return Serializer::template deserialize<Document>(encoded.data);
59 }
60};
61
63
64#ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
65template<>
66struct is_transcoder<default_lenient_json_transcoder> : public std::true_type {
67};
68#endif
69} // namespace couchbase::codec
A JSON transcoder that encodes with JSON common flags like json_transcoder, but does NOT validate the...
Definition lenient_json_transcoder.hxx:47
static auto decode(const encoded_value &encoded) -> Document
Definition lenient_json_transcoder.hxx:56
static auto encode(Document document) -> encoded_value
Definition lenient_json_transcoder.hxx:50
Definition tao_json_serializer.hxx:42
constexpr std::uint32_t json_common_flags
Definition codec_flags.hxx:145
Definition analytics_options.hxx:36
lenient_json_transcoder< tao_json_serializer > default_lenient_json_transcoder
Definition lenient_json_transcoder.hxx:62
Definition encoded_value.hxx:27
Definition transcoder_traits.hxx:25