/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #pragma once #include #include namespace apache { namespace thrift { namespace op { /// Returns the serialized size of the avlue using the type tag. /// For example: serialized_size(prot, 1); template inline constexpr detail::SerializedSize serialized_size{}; /// Encodes the given value to the given protocol using the type tag. /// This handles adapted type. /// For example: encode(prot, 1); template inline constexpr detail::Encode encode{}; /// Decodes the value from the given protocol using the type tag. /// This handles adapted type. /// For example: decode(prot, i); // decode to variable i template inline constexpr detail::Decode decode{}; // Converts from a type tag to a wire type used on the protocol level. template inline constexpr apache::thrift::protocol::TType typeTagToTType = detail::typeTagToTType; } // namespace op } // namespace thrift } // namespace apache